From 1fd342fae653e0399429dc9963c80acab66c8253 Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Fri, 24 Jan 2025 11:31:36 +0100 Subject: [PATCH 1/5] refactor: remove unused apps --- apps/dao/.env.sample | 8 - apps/dao/.eslintrc.js | 4 - apps/dao/.gitignore | 53 - apps/dao/.gitkeep | 0 apps/dao/.huskyrc.json | 6 - apps/dao/.lintstagedrc.json | 5 - apps/dao/.prettierignore | 2 - apps/dao/lingui.config.ts | 1 - apps/dao/next-env.d.ts | 5 - apps/dao/next.config.js | 58 - apps/dao/package.json | 82 - apps/dao/public/android-chrome-192x192.png | Bin 28014 -> 0 bytes apps/dao/public/android-chrome-512x512.png | Bin 93787 -> 0 bytes apps/dao/public/apple-touch-icon.png | Bin 16657 -> 0 bytes apps/dao/public/browserconfig.xml | 9 - apps/dao/public/favicon-16x16.png | Bin 1438 -> 0 bytes apps/dao/public/favicon-32x32.png | Bin 2383 -> 0 bytes apps/dao/public/favicon.ico | Bin 34494 -> 0 bytes apps/dao/public/logo-square.svg | 1535 ------------------- apps/dao/public/manifest.json | 27 - apps/dao/public/mstile-150x150.png | Bin 16549 -> 0 bytes apps/dao/public/safari-pinned-tab.svg | 49 - apps/dao/src/pages/index.tsx | 9 - apps/dao/tsconfig.json | 15 - apps/lend/.browserslistrc | 2 - apps/lend/.env.sample | 22 - apps/lend/.gitignore | 50 - apps/lend/.huskyrc.json | 6 - apps/lend/.lintstagedrc.json | 3 - apps/lend/.prettierignore | 2 - apps/lend/lingui.config.ts | 1 - apps/lend/next-env.d.ts | 5 - apps/lend/next.config.js | 58 - apps/lend/package.json | 79 - apps/lend/public/android-chrome-192x192.png | Bin 28014 -> 0 bytes apps/lend/public/android-chrome-512x512.png | Bin 93787 -> 0 bytes apps/lend/public/apple-touch-icon.png | Bin 16657 -> 0 bytes apps/lend/public/browserconfig.xml | 9 - apps/lend/public/favicon-16x16.png | Bin 1438 -> 0 bytes apps/lend/public/favicon-32x32.png | Bin 2383 -> 0 bytes apps/lend/public/favicon.ico | Bin 34494 -> 0 bytes apps/lend/public/logo-square.svg | 1535 ------------------- apps/lend/public/manifest.json | 27 - apps/lend/public/mstile-150x150.png | Bin 16549 -> 0 bytes apps/lend/public/safari-pinned-tab.svg | 49 - apps/lend/sitemap.js | 11 - apps/lend/src/pages/index.tsx | 9 - apps/lend/tsconfig.json | 15 - apps/loan/.browserslistrc | 2 - apps/loan/.env.sample | 6 - apps/loan/.gitignore | 50 - apps/loan/.huskyrc.json | 6 - apps/loan/.lintstagedrc.json | 3 - apps/loan/.prettierignore | 2 - apps/loan/lingui.config.ts | 1 - apps/loan/next-env.d.ts | 5 - apps/loan/next.config.js | 58 - apps/loan/package.json | 80 - apps/loan/public/android-chrome-192x192.png | Bin 28014 -> 0 bytes apps/loan/public/android-chrome-512x512.png | Bin 93787 -> 0 bytes apps/loan/public/apple-touch-icon.png | Bin 16657 -> 0 bytes apps/loan/public/browserconfig.xml | 9 - apps/loan/public/favicon-16x16.png | Bin 1438 -> 0 bytes apps/loan/public/favicon-32x32.png | Bin 2383 -> 0 bytes apps/loan/public/favicon.ico | Bin 34494 -> 0 bytes apps/loan/public/logo-square.svg | 1535 ------------------- apps/loan/public/manifest.json | 27 - apps/loan/public/mstile-150x150.png | Bin 16549 -> 0 bytes apps/loan/public/safari-pinned-tab.svg | 49 - apps/loan/sitemap.js | 11 - apps/loan/src/pages/index.tsx | 9 - apps/loan/tsconfig.json | 15 - 72 files changed, 5619 deletions(-) delete mode 100644 apps/dao/.env.sample delete mode 100644 apps/dao/.eslintrc.js delete mode 100644 apps/dao/.gitignore delete mode 100644 apps/dao/.gitkeep delete mode 100644 apps/dao/.huskyrc.json delete mode 100644 apps/dao/.lintstagedrc.json delete mode 100644 apps/dao/.prettierignore delete mode 100644 apps/dao/lingui.config.ts delete mode 100644 apps/dao/next-env.d.ts delete mode 100644 apps/dao/next.config.js delete mode 100644 apps/dao/package.json delete mode 100644 apps/dao/public/android-chrome-192x192.png delete mode 100644 apps/dao/public/android-chrome-512x512.png delete mode 100644 apps/dao/public/apple-touch-icon.png delete mode 100644 apps/dao/public/browserconfig.xml delete mode 100644 apps/dao/public/favicon-16x16.png delete mode 100644 apps/dao/public/favicon-32x32.png delete mode 100644 apps/dao/public/favicon.ico delete mode 100644 apps/dao/public/logo-square.svg delete mode 100644 apps/dao/public/manifest.json delete mode 100644 apps/dao/public/mstile-150x150.png delete mode 100644 apps/dao/public/safari-pinned-tab.svg delete mode 100644 apps/dao/src/pages/index.tsx delete mode 100644 apps/dao/tsconfig.json delete mode 100644 apps/lend/.browserslistrc delete mode 100644 apps/lend/.env.sample delete mode 100644 apps/lend/.gitignore delete mode 100644 apps/lend/.huskyrc.json delete mode 100644 apps/lend/.lintstagedrc.json delete mode 100644 apps/lend/.prettierignore delete mode 100644 apps/lend/lingui.config.ts delete mode 100644 apps/lend/next-env.d.ts delete mode 100644 apps/lend/next.config.js delete mode 100644 apps/lend/package.json delete mode 100644 apps/lend/public/android-chrome-192x192.png delete mode 100644 apps/lend/public/android-chrome-512x512.png delete mode 100644 apps/lend/public/apple-touch-icon.png delete mode 100644 apps/lend/public/browserconfig.xml delete mode 100644 apps/lend/public/favicon-16x16.png delete mode 100644 apps/lend/public/favicon-32x32.png delete mode 100644 apps/lend/public/favicon.ico delete mode 100644 apps/lend/public/logo-square.svg delete mode 100644 apps/lend/public/manifest.json delete mode 100644 apps/lend/public/mstile-150x150.png delete mode 100644 apps/lend/public/safari-pinned-tab.svg delete mode 100644 apps/lend/sitemap.js delete mode 100644 apps/lend/src/pages/index.tsx delete mode 100644 apps/lend/tsconfig.json delete mode 100644 apps/loan/.browserslistrc delete mode 100644 apps/loan/.env.sample delete mode 100644 apps/loan/.gitignore delete mode 100644 apps/loan/.huskyrc.json delete mode 100644 apps/loan/.lintstagedrc.json delete mode 100644 apps/loan/.prettierignore delete mode 100644 apps/loan/lingui.config.ts delete mode 100644 apps/loan/next-env.d.ts delete mode 100644 apps/loan/next.config.js delete mode 100644 apps/loan/package.json delete mode 100644 apps/loan/public/android-chrome-192x192.png delete mode 100644 apps/loan/public/android-chrome-512x512.png delete mode 100644 apps/loan/public/apple-touch-icon.png delete mode 100644 apps/loan/public/browserconfig.xml delete mode 100644 apps/loan/public/favicon-16x16.png delete mode 100644 apps/loan/public/favicon-32x32.png delete mode 100644 apps/loan/public/favicon.ico delete mode 100644 apps/loan/public/logo-square.svg delete mode 100644 apps/loan/public/manifest.json delete mode 100644 apps/loan/public/mstile-150x150.png delete mode 100644 apps/loan/public/safari-pinned-tab.svg delete mode 100644 apps/loan/sitemap.js delete mode 100644 apps/loan/src/pages/index.tsx delete mode 100644 apps/loan/tsconfig.json diff --git a/apps/dao/.env.sample b/apps/dao/.env.sample deleted file mode 100644 index db83186aa..000000000 --- a/apps/dao/.env.sample +++ /dev/null @@ -1,8 +0,0 @@ -# -# Curve dApp Environment Variables -# -# App environment variable -NEXT_PUBLIC_MAINTENANCE_MESSAGE= - -# Networks -NEXT_PUBLIC_ETHEREUM_DEV_RPC_URL= diff --git a/apps/dao/.eslintrc.js b/apps/dao/.eslintrc.js deleted file mode 100644 index 88c70329c..000000000 --- a/apps/dao/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: ['eslint-config-custom'], -} diff --git a/apps/dao/.gitignore b/apps/dao/.gitignore deleted file mode 100644 index f69b7eba0..000000000 --- a/apps/dao/.gitignore +++ /dev/null @@ -1,53 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. -# - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage -cypress/videos -cypress/screenshots - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# IDE config -.idea/ -.vscode/ - -# husky -.husky - -# vercel -.vercel - -# lingui compiled translation files -src/locales - -# TypeChain generated files -src/sdk/types/ethers-contracts - -# crash report -report.*.json diff --git a/apps/dao/.gitkeep b/apps/dao/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/dao/.huskyrc.json b/apps/dao/.huskyrc.json deleted file mode 100644 index 6ffa65e43..000000000 --- a/apps/dao/.huskyrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "lint-staged" - } -} \ No newline at end of file diff --git a/apps/dao/.lintstagedrc.json b/apps/dao/.lintstagedrc.json deleted file mode 100644 index 6b0146d27..000000000 --- a/apps/dao/.lintstagedrc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "*.{ts,tsx,js,jsx,json,css,md}": [ - "prettier --write" - ] -} \ No newline at end of file diff --git a/apps/dao/.prettierignore b/apps/dao/.prettierignore deleted file mode 100644 index 825f81b1d..000000000 --- a/apps/dao/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -next.config.js diff --git a/apps/dao/lingui.config.ts b/apps/dao/lingui.config.ts deleted file mode 100644 index b6c0e4aa9..000000000 --- a/apps/dao/lingui.config.ts +++ /dev/null @@ -1 +0,0 @@ -export { config as default } from '../../lingui.config' diff --git a/apps/dao/next-env.d.ts b/apps/dao/next-env.d.ts deleted file mode 100644 index 4f11a03dc..000000000 --- a/apps/dao/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/dao/next.config.js b/apps/dao/next.config.js deleted file mode 100644 index b73545a38..000000000 --- a/apps/dao/next.config.js +++ /dev/null @@ -1,58 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfiguration = { - output: 'export', - compiler: { - styledComponents: true - }, - experimental: { - swcPlugins: [ - ['@lingui/swc-plugin', { - // Optional - // Unlike the JS version this option must be passed as object only. - // Docs https://lingui.dev/ref/conf#runtimeconfigmodule - "runtimeModules": { - "i18n": ["@lingui/core", "i18n"], - "trans": ["@lingui/react", "Trans"] - } - }], - ] - }, - images: { - remotePatterns: [ - { - protocol: 'https', - hostname: 'cdn.jsdelivr.net', - }, - ], - unoptimized: true, - }, - trailingSlash: true, - transpilePackages: ['curve-ui-kit'], - webpack(config) { - config.module.rules.push({ - test: /\.svg$/, - use: ['@svgr/webpack', 'url-loader'] - }) - - return config - }, - eslint: { - // Warning: This allows production builds to successfully complete even if - // your project has ESLint errors. - // ignoreDuringBuilds: true, - }, - typescript: { - // !! WARN !! - // Dangerously allow production builds to successfully complete even if - // your project has type errors. - // !! WARN !! - // ignoreBuildErrors: true, - }, -} - -const withBundleAnalyzer = require('@next/bundle-analyzer')({ - openAnalyzer: false, - enabled: process.env.ANALYZE === 'true' -}) - -module.exports = withBundleAnalyzer(nextConfiguration) diff --git a/apps/dao/package.json b/apps/dao/package.json deleted file mode 100644 index c34b66735..000000000 --- a/apps/dao/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "dao", - "version": "0.1.0", - "private": true, - "engines": { - "node": "20" - }, - "scripts": { - "dev": "yarn i18n:compile && next dev -p 3002", - "build": "yarn i18n:extract && yarn i18n:compile && next build", - "start": "next start", - "lint": "next lint", - "typecheck": "tsc --noEmit", - "commit": "commit", - "prepublishOnly": "pinst --disable", - "postpublish": "pinst --enable", - "i18n:extract": "lingui extract", - "i18n:compile": "lingui compile", - "analyze": "ANALYZE=true next build" - }, - "peerDependencies": { - "eslint-config-custom": "*", - "react": "*", - "react-dom": "*", - "tsconfig": "*", - "typescript": "*" - }, - "dependencies": { - "@curvefi/api": "^2.65.28", - "@hookform/error-message": "^2.0.1", - "@hookform/resolvers": "^3.9.0", - "@supercharge/promise-pool": "^2.3.2", - "bignumber.js": "^9.1.2", - "curve-ui-kit": "*", - "ethers": "^6.13.4", - "focus-visible": "5.2.0", - "fuse.js": "^6.6.2", - "immer": "^9.0.12", - "intersection-observer": "^0.12.0", - "lightweight-charts": "4.1.2", - "lodash": "4.17.21", - "memoizee": "^0.4.17", - "next": "^13.5.6", - "next-images": "^1.8.5", - "react": "*", - "react-aria": "3.22.0", - "react-dom": "*", - "react-hook-form": "^7.53.0", - "react-is": "16.13.1", - "react-router-dom": "^6.3.0", - "react-stately": "3.18.0", - "recharts": "^2.12.6", - "sharp": "^0.32.6", - "styled-components": "5.3.11", - "swr": "^2.2.2", - "ui": "*", - "zustand": "^4.5.5" - }, - "devDependencies": { - "@lingui/cli": "^4.6.0", - "@lingui/loader": "^4.6.0", - "@lingui/macro": "^4.6.0", - "@lingui/swc-plugin": "^4.0.4", - "@next/bundle-analyzer": "^13.5.6", - "@svgr/webpack": "^8.1.0", - "@types/lodash": "^4.14.182", - "@types/node": "17.0.24", - "@types/react": "*", - "@types/react-dom": "*", - "@types/styled-components": "5.1.14", - "@types/validator": "^13.12.1", - "eslint-config-custom": "*", - "pinst": "^2.1.4", - "start-server-and-test": "2.0.0", - "tsconfig": "*", - "typescript": "*", - "webpack": "^5.83.1" - }, - "resolutions": { - "styled-components": "^5" - } -} diff --git a/apps/dao/public/android-chrome-192x192.png b/apps/dao/public/android-chrome-192x192.png deleted file mode 100644 index f0df21c885cb5ab8e1be066e1c38147b8cf55be8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28014 zcmV)=K!m@EP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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ℑW(^9KWZ(_v(GNHZBJr;6iv6{aCp5j|`HLuWOZ0n2P$G`d0f9o4NUmDEdWF9S%pC_)Jp! zOcB7v5N%AP7&AApzY}=583N=@B717N=(zouRB5$(0qW2IZ~z#O-97bOs36b)okRza zey*ZDa0`*`h=(ML0Fb*^T{&g71no>UYGDYY?y`THEGB^y59OMB7-8?&EBD1CIq)a4xuxwQv(I zmt1ga>6XKQYVd0?&eQR*SYr6grSRzxGiw&xx2)3lyvT{+b6xgKQ~R&fSp{=KLdG2CS`;L%k+xL}0nB*-!Xeuaxx;N1&YfHg3p-fCDmJwj zD`Voin7A&SAY(SAG50Y)q3Uw}lco{V&t{DR4R6wVQVVi1%lo2?fh;co8BsY!kU{}K zITDcMiqEP1>8JYQ5GzV5V=LDMC{k*e+6V6=pMcQ0bduxj7C07-*}8PCMUa*nNc{-1 zkk|A_JV~SH*y`K840g7Ee-Yq6e(So3MF=kU1HbK@Nu4 zO5FUGZQNlmd!Lxb&}r3QR^&(LD2m(pnX!IZ#V;eTA&?9~0GzpP12}1`|3mWt$Qhwr zeT8FtG=a-~44G`$sWH&Oz5p5lhh<^k_t6P6ETWv=M=flD^j5Q^>K|w9&y)5+>14X_ zLR#0jEH3~F&UCBJvLt|9?CPYFm7YT?c@nzGFSTG$n(?EQw`B<9Iz)Edo6d!;L?xFx!|79|043SVT|wR*Tn-A^T)sz4Oo@{KeDx-ftc!;AD?6Ugy@aeSLa++jeN zW%w7C2AJj5AOa8vdu%V@?t$@P;L|dtJ?u#-F#5q8`abxOrL$U+%B!@j|^QZVIBb>jY@#o_s6C8 z->1}ga z&d;Kdx6AV;)hynd9#*@`&vEZF25wnkah&w(%|^s*g!aJ{zB)j48v?kA7*N!wDdQm{ zvEUGXp~6727l3m8i=+n*m5hQAE_izWKTzS@FB<|l=m8k9;RK#`lqc}8k1l#S?eG}* zv>t#PX=Y!U-O9E6b>cq)5e3~4S(slDQl@~a1IQ`~Opv_*WYl#+MIEw8fLtShbPBp_ zAd#7=E1EtZW8RA(*9Mqi)(V(DBUdG)B0zgM=wZ>7xTTWzc`JG%Tr_qR(=U?IAnzwi zj%_L?B(G2w0dO$yg~{vwCvT_gWU1-^q$-VVK0=@GVGli&Ao-6ZbT0f3A7VAy!fLdI zbK!NI53k{La0~0veXK=WXvJe#Jmm{ql(A2n($zX1iHDEpdHTwXmBA`McOOi+@vSII zeLpXSuk`sRqB&~&q;}NH>)NLSx%i=uB7pY3}(br)!_O&tX!~r))@qjxt1Bo9my3 zF_FVVvajhZR!-Tz-INAGNlRdxIgzSzJF*afnh6jC;A{|%$Duo- zib%Q(*+m~K*vdV~$Za9AEI6|GMn?eTZh0!?6gY}`PcR?nPP@W3iuH*n_dR`ov^vbI zNGF554YssTKlyur84)P@Ov%PZ?IJCc0Npr5(u-p7q#2-4$q@4fkBE?k>{7%;0^($x z=xjjPV&GoOVgtpcF~Oo=*Ii##sjm0I_lWc6k1ewc38$f*(ax;Z2l(z zSQ+;{x5UamUhpa(NWM!Z+|v;gse5WGYBnb@Dt8Q7)K@i)PxS&&FNaaZ6hYemIH`FP z!kOONc?jWP7yZ=qz;LEPSjb&hwGhzM3t)|-Ad0LBx%pKl#lf(RWt_$J-1eDc$3tMd z^8~=soB^%UcQnHyyI9Ex((vi})5{=ZzKML0(UP?yUfwlzV3r!#!MyUH zN*ou_5vYxVbSaqX`Q?cL$;*`Xo(5~t*0E0olvnTortNes9>e1S`tdH7;~n&)T`WgC zSdZ>wJ-mZ)W zNwrTF5z9{lt@0x#($r#>UZ_VHTvn=o1(i^qz$>-dPs7X$08ElfenDvyI70w$TJg5X zxr#+`FY_Eyh{2(U08|_Z0a*LNXdKw1G}R;n#{eCS(Ly`JKhD7rF$+Vlg?2EKcX05t z4geouI|mMSFvpsVzMFH^vcVl8+m%l%(zN!%L?m{gUlmeeArrwMT>}XeDNRo&-b=8S>`l(8w2_cZjmFnhGT%AZ5ksWfklj=XKzXHR|+maQ|kwN0ftnY@JHOc!UL8xh^ zKlym%b?9K0(wKHVY2E+ibL&A*BIHnvL>yPRAOKZYDkji{@MPmot9T2sSW$7nMvQ(U zyjzL3upI9Q;~w6_Msy!5(bi%OyeXzWOU#}D)ibu3L7iLCPk%3XOl|=&1473_=-7xY z9N8*Ae|u|s=a?LeR{J5G%B6bKjxkA^IFBp#0RU$1{vp~aRRPmQyP`HgFS9nlQ~#(DHHq-V5cfph*y_6f$so^Fng)gb zPN4?|tj1fgd0bPKG1QcuKFxN9Z>h2wL@;FmG>X`p@A)oe#bkyXCYxhCEDkYNaA zQQsoUT~jKZ@F+O2DmK+p-Tg&D#y_t%fZP#qQ7D@RsLKKf7L7D=&*Rb4^*uv>{S?U;O!jfG zTn;c7PQ{wb2p}(?!!O{=>E&nIz9tnA73^6Au6i4tc`;x(EPi17s-@ z^k9P1+8B$un(|5kt3T=YAgDI-x*dP~uWo^9Jg|dGVoL^tz^GD%YgjP39qVxk%AczS zfKC*M1b!Mw&dus{0X7iyz^kj4r$Ye#F>U$BN;&j-Q@TWgbS$b#rWWs|dGbl1(7YO5 zP%p)(DOdyWp1*F-5R5&hbURFDHx+c^*gJ|KO4m43QPj`h0X;fs@cZf3p z)YK5AOLX-Y2>-u{AvSndekb6;5CWEP(c%L%_z+D#M2inl<6|`W0BgLDhBw59*F}>L zu;i-`mjQ3Eg;D`VK+h-80T=ucf#R0l9b1MBD}UUZ&eVpOT2=GuDi-~Zw< z3WuvjTDr}yK^B_DbyHEXm+t>t08SBj2~Fe=-2;-WXml(U(Ty=%bw7>jr6`h0faIN5 zl;@(F|5>60x+20X5CGl=umj+^zve(-1VnT2s+I$_`epUdqpg80q!0Wtl=o#t6~Ju- z23#8ACQDNOADC|YQ;%=W|9K@}vuj-7|2g=7fy2O>=wsdMqAtb(i3!pAS=fSb8h0i(w-Kr=J>13?FX#|_6BnF}eJnWqGD zDh*%^-TqkA#DFzfYtq{lJt^7tu&x=O7Yb=I1H(!Uo5ODW%>%L!P*ednM!Y02Rb7)2 z5choCHAAU@4yG&qvqG&GP*W15y-$+6S<+K9V<79Nrxx$2sRGK=tL=X9w;LxtoOOSI z^q9X3-~ci$00iWx8Ub`{^xh_d>4jPLrH

LiR#J>Zr(qZ3IK5vW`R6830r~NqOfu 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 diff --git a/apps/lend/public/apple-touch-icon.png b/apps/lend/public/apple-touch-icon.png deleted file mode 100644 index 7d9762db86a735e3473c8eb74bbb02f42645f838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16657 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 p>f-3& - - - - - #ffffff - - - diff --git a/apps/lend/public/favicon-16x16.png b/apps/lend/public/favicon-16x16.png deleted file mode 100644 index 193be9f0444417d35d040bacc5e9083e032c1434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1438 zcmZ`(eKgf~82?F62`{@94U~Fz+598z58mBAQtz2*m0PP&o=%?;?S2;R&IL_)kU=Nmx%f zLa-)yP$h5xCM6C&}Y`Cv20c?y+CU!nTTz)Go5w^GH2bHEB>156ei!F zIp?ZtSTxmPrFzDj7_}Se6l(5>m?{_T^^djfwwg|>si!96f8mvu*R5JH*=VckG#VM@ z45`sUC?S@lanGo6?oPx(H@`(Xw}D=05mUL?uJfE@{8{#u}!4z^R5R4Oac3_rZGJ#h$7?Dd` z_EBmn#n)w?GoNc_ z-=)QW44aMj8x0N3>>n~8yCk4#+VSoQ|-C$$1fprHna;G@j zK~StNbe_p^f8A-#-K(BTowfaDmPt~BJ^K{Ei4XAc>P=0oozDh_3cnz4!&gR@<_?0G zO2&*W3;eu1!sa}X#KoDL&NeG6I#eu+=W%!zRu50TJQU`dY2a-qa;eO@=)WOrjZCyP zxcbb|I^N1<${$1pd4ZG$mL%t43j>`5) z49{3Ak8P~sEC1Y`SF&(zxm${Qe|fF!etGikICnXdyQje7lgPSFQ~9N5MNz_t>d5-d zy1fUExyT>ZrDzTw7nyX|ZykA9FQ;9~eKS9F&1%1W`1(C&GOy&v;1jOdudgXjmedNA zXCLn=D07TWd;9mqm}<2DW&H1|`mAB~49fYXGH%|5*lnvlRkhL#z6$`MM?yz1iQ)GzKrSM3Q$4hPe zQpAbUP^mZ}Gp$9+{%8o#3X4#LiZg6d)8(?HO;Q_0W~$UCDODi>wpF|sGcigN+1t0S zZEN@I4~4$1z)>PFvo#ASG1oV<@yc0#GeO_BHq552r?a`Ky=iWfVOx%GrN1KvElm|; Sp3bFg3;1~ldsTbJ<^BV_*>*Vq diff --git a/apps/lend/public/favicon-32x32.png b/apps/lend/public/favicon-32x32.png deleted file mode 100644 index 0bd32716ee188f047811e151c8698d42b32e54ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2383 zcmZ`*dpOgJAO2z&(J0` zvEq<}%ZQ2DJOI!YoAWjR(7=}5qk?~k{`PL?0U$;j09eTY@XrCoS^|Iw3;-9Ej=2lorQPKbtt$;}mOkJZ}BXe-N=KEJBjd`5=)Hq*j9( zPfJwL@@s~?``|fwkKJ_@avdS1 zAT{V}VkD?la>p8|g#<*9s(9v#Q`ICUYg5`hwlw6jpOAf76z1x*_6fEVDBg;y#M)$v z_-C8?%5WWdvzfY4Q&Lg=&lw81A&c9crlK9%zHT#n9*pT@mi3S7Kd7f~bc34EybXBW~GpL&_KCcH#j{nb^iL@qBN=$DQ42f58J*1X6G1WI_`6nn%!z z*aXWf)lSrWCKsu)7FAqwg&uwHRmmf^!s{t@YpS(s=j_E*M*C2-;m*@I@0gw4bA4A7cPn|Jpe;>)0;zWMBuk9BBV&4c{ts8^Kc}u1j+wJi zqGV`W9f&?4QyA_taEDsR&n1_u_AC<5Z6FWn4B?d4N1R!-8SH6?EW@{HG18FsdfE!z zS>&Qbv}m~3DEik$EyoEa6yS1d8nY)8%ElI`6MG|j1tfkWn2ul*`8HxDDot1_;%s2X zQpM9>q4ux}?-m~O5XaGwNEsfmg4%kwi5Y44N9C5VE~**7&Awxh=$ENnVTPBh(SC>J zYO8FYfB(~jT->zE;3JPHB~2t41Yc-J*6Xi{W~1@CYQizG zOumFl+x}yeF0VmWRW|mlrOxAJ=_-#jkY}PvMNqBENg*t{wYgf|>vOZfJwmT(Z@nWb zEQatR3D}cix-EE-kfIz&_}U*_1a!PX>CzD&1x&98c>3kqlDa{H8}e)dr+^&Pp-Ic z#=-DCNPpfLvt+z~F=9HoiJ4E{o#Ypg=d2?W{)jDX|3tOqab{(7)B3(HU3kU|h{#(H zZthym^0?9YrI;l9L5+;>{1PR~@D(XAm=)!K)m1zCy-v9hpSb+a4DLt6uvH{nuH&eL z-*h0(BRvJD>0=8@-r1~d94IIGpQ|PW*7>wljEyGGzhfpF`s#^D1worM`i;}~J8bnA z2{GC;9E-P|JC?n=tF#u)aMjc??Hqa8+3XpaIryyHoN;+qw&NiT{QAfx;@}qwNx}HZ z`@qTmJvCbu*+K0*Y@w@W*HL-w@M~iMg^XV`&%{~kr%#}(-0@>t@)=5OP#U7R(vmIS zVx{g%wazM`_4v)x*wn(+TCK zSc@%9Lo^&s*l3&VGDI5^#-Z*?a7?*l*@@4Y4bJ~AwidQO{?=<}krq8a1{O%UE8TnC z7bzaP(!gB5;(sYAVy?YM{$>U(Qf@BvPLCFMm?7dy!&{fBkc(=T*Wc$)}pJ`i)|_r-WUfRpNfWDuBfV&v#*} zEcuc;6!%r&Z{M#+x`yI+JAOM;oBnYB?sf(Un&pxD@sWmhbQ15~QX`jw4%ayPO=|t| z_}N(7oy>D72`>VlST1Fb4Sc?^P&T6`0Rv zju{9qIhH!v>od`YIUs#Z4&DOixoo_5AA4oKI40kgVeqVQf09o!2+;UTPls0aC-=yA z%GxXA*?iC^hPe_&oE)z<$iJ=NC9SYnt}#(0AClTVUUAH1xX(}@y2H54ewT$wGqhBQ}p@hRK>3(VyrvJLMp+(Ou` zDL+f(K24f)KuqIC=3PD-d^-(z>q6^u1U! zbkOu#Oah4+KxNV_{KIJn02pD6jPx;P`bNg?Mi>hdQwu{wT@1zogOQw=P5K|hwa|dz z!07*Ph)KJ6=D?u*BY_wi$h<)frvWwrp?)-^!!_y^nj4K85FOS}`|*N!#kiB0Zqyq{ zdU$AH@KqX;8BM1lgXv6v0EjA?|9V(F%oBwga2XtOSabu#G$hgfl5!eyPWKUFa!5SO vgcl&D(ddpG9Dmo>J=Cq*4IO0Ja~#pYvLc-M^{i>$K?LAHaK^tl>znvrcjhH& diff --git a/apps/lend/public/favicon.ico b/apps/lend/public/favicon.ico deleted file mode 100644 index ce502d7db701a9dd061df52512710666f9e5ccff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34494 zcmd6w2Y6M**7xU>R7&V7ARsDYM@2;hK~%&JR+@^asEC4!h>fBs*bp0n(nO^QDosH^ zq=SG+@0}1JBq5}pw)gseYtA_#a?$I3-+RCN?&tYu%`Ru}S!?>te@%?>m;_UyfTAe!4^9elHvb-@38pO`eHYTT*G0mGt&+E4^X6W_C)aM;M z${VBC5r26&HBFuH>1KYoz6m%@%{aNil>N&el)CBOWy(5tnr)GGM#7I9ao#cFeqcT< z^~hfZz3#`RxAU=)$cNy4BY|(da%5jxAZK4{C4T6Q{a9rjddY@mit*-eP25qq#V>(1 zUI{HT5?bVyN$xGOrJ(k-+|1)@3CHJ~x+2Xo>U-aqATA0K}jyil?tJQQr+Dl_1rabxw}AGIp4|s z?r?e8eL4M-g5`mviN%umK|oU8EtI65#o~J?EWVe*a?jqc<>_PZ$bETV%9VMGq*C4? zNh!>gD&f6ymb+H2bEiqwof(qQHz)}=2gQGRNc`s`8zAowO8dN#@|^oRaeh-CbKjTt z?g(iRTrSB63dDb?SgM5f?@E{xIOJ;=7H@67TP9t+NxQ{YFtp5=~sc0^t??>MtOjl<$e-6tO30x+9*tQX%i0ZG`4K71>2Uy*or z^2~;?n1!yGsbI3Z&iv|@H=W&{rdGZf|6(z|FTfb_B>gI$o)Ix)d2Sr|3XBGyf_K3? z?m{!drG#?aA=OOU!Cd2;z;E9JABrizPR#8**BLwxo&a6I!)})8=Jqhp3MINEFMCbG z=6j82q!`cZV!Zr5ag&(pAu;Fkn+BkfyUkq7@7f3@{~yYO#)AC(#qGwtx5k*y0@N6J z#W8;%UiuBW27Lp)~57Y9{2=HJjY?Y_%7^Upl^jH(c^9_af8Exx^GjnoytI z1Ugb5Jq#W&ok|}1*8?^l)OFR}_9iFNiT6H2efK2jOPx1{_m4C=GQz~`ta!ZtuGAQL z-8alo=Plkn5U6|;yiJ`r+avi~Q>17`LT`O82K$@888+^hrh@x}DRO4=&Kcla;yn>L z&Pc)RBw68HAUleyuXa}$&7c43;VsaJx7nEyjyU<-z2=tek-oeUrDp>$k{WN1uv47q4Q*2pss8V)spRnr^)_f z6?tcxyx{hgK5lQB?p`Mg-G=gez--ch1k{9CH0_t>wg zsZ(-W7L5+yCtro{l!>8RWm>3(%y6!ixxuSsQTQ^s(fwZTl&@rf`z-bOBQnx$C*$2a zWE$U_=Uyo*o%3W{pl0s=g38m59!c&R+2W}lH{yn)XSRI3u%|p9?k_KgUY35L=V>!~ z$l&l}GBngl-i-9Hb@WBw>+AL>9*2)Fp71A)gP?`j1OSvUS#mslbvppmgA{la;yHn0|*UP!IgO|!;x!RpW zdof*Zb0!t$zo0-;L)lWn$&gdsT~bT7@V(z`8`r{_VRh3s^F{a7biSLL zx+!0hCKOA;n4lz$E|!$hg_8PFf%v-8{&eM?FVgOf56i<@pUS;QzLFMMKgoGnYo*+g zqvAbEyH-$${j#L0vsX@cx7aqmkvmWBcE`%a#mgn>7vB8_@qZFL6p*C5XjfYni@yc! z;Y}e)cpxa1zB(d9+%7WI?IfSL56K7aqt*sJ!UN^T!fA3^_I~jl4oc#&d`S)DNHur2 zTp~*fPRZIA@qbAip5#3@Xj>Z;U;VK7&qUVc`~rS+Q$SAtc9(5yH7&ck??@NgU9~}5 zca+@XP7+P`T7j*SxP$g~H~MA;q;fcYe#(~o4BtS`?+%HV_xetujV_xhzLbNs%gAbZ zl5llEYAx9z*SIs~TK5NO?*1rE+}YON7rD!AdY|I#mK6FNzOB4xMMOO79ljCl$eYE2nY5NyDVrG&b7P&jjZa3Ksa|f6Q$s6@T^aaxC2P_wl|3@%`@XxgATf}#3 zK)g%QZ6h`#exB{TV+-%tOq_lvyp-@9Fb#Zdk!xnS7uYiVuG_-20f-oGv9(K;QLtkJEZm@Mgh&k?}7K-ee@x&h}92X^A3H2MqDd* zfOpRWV|h1y0pBM``W9(h#N5yCUIGKaATSWTA<^>}3BOACIq-@*#k}cO(|WBGj5*VN z#3b$Do!`>W_yD{?_+8#VPE2LK+k$u84LX8OpaXb__jLps?jRdXSNC?)%l0Q?Q7r47S@pqm~#=nD{ zN&7eAX=8@0Vlx1pTH(D8kM zW`@x(D`~&})%X3~=cTssGWP5jsY^fPLi!0;A+Mufax49*8%;Xn(DVN8yZ+{Ln)Z6w zJm6ksdN|Gb=8fQXa367?U+47Z`!9o@W`n$7lH8(;mc9&sI_XD2T!@q6*-PyCH>`wH(yA822b z3>khS`u*Uq9tp4YN_c^HpZi@&zp3fdg8u}oC=b2Fj;akljPXmL@D0w zmEz4F2?A#&X|Tp4Bi!~f#=Td5iCife`4uBaGgFoxJDk*;IgRteJ4^C`>R$SY+aiAL z5BCqQuH0x<{(16S=v-MFI#V`;&X7&TwPaWD6xm%^RWkA_$f2xqlAWC*uevWvZ~BDV zU-{X+N|w79$y(=Z*%7QR>4lZ|9nLR5=4eiGr-FmNx{<9V@ri%;q;kXVvj$BGw3MmA z8)Qbfh0F?FBeTO-%P*nJZ9jWOOtu1tJXPSGx%yk>f zV)s&6?bMg8;nQVrQPuRr$I6Y%J(AdkIhwk%@uczb&dF-J`r|-n`GEPFk3yYgICC~5 zBkg2t=q~v>+*-a3wUQ~3mhx@nCOiMqTz-@`%)h)KeWkxVFN55tOZwxZ7}Jb*ZY%x_ZgiVtJd6lY-%x@Rz7Jgfv4iA!^!Pn%) z;H&a#q_+$RJ}Uzw-R1q_$K->^Bl2S8Rr<9%ZQr)BJJ*g2I>}IZg1M=uWe_pxFa6wJ zGC-b@cipb?u{=b6X(tnikB)&BIG4-sp>t$ke$_1Inwo23tSLO_?iY(+mD@rS<@WFd zxjQsg+J#2R{gL7FaOflH5*Z>-hTf59LT|{``STnwA?dY$C1+4eZiJFm0CAyy`=SHcNu8QK@0NMDcR|awRwLAV=Tt0$$?y{ z7&##4$*Ns7j_nHg=Z3^LC@cvN6OZc|$LhT41>h`DhrDolKzy~)`$C>+&UyEcT%R>v z9&tZpUV1QNx*>dPh;(v?N;`L?P2bzy2{zwp89kr$uatj~aWwDQ#@Kc*W1eG0*kb>f za_QOoyx(A>=Xp1F_FclgTFA=B81FH+ngYrk7GH%t@z*3R8e*efMbgCi$(A){MC3Y| zE;q|0xk08#Q~Al}`}1X`wQ)^%n^X*CNMe4z_%|^ITt$9e!}w~KBZ&q1O?(?d3%#F^ zr#b^23)Ufi<#VFr!Gw+C@iLC`Zx(ODPVrUB!7k|VG2`ZNI%DpwQrq2JB5N@QKf~Q9 z)x$d_EpkxGM2<*OZa#UE?{4GWI{sWhIimcUweG6KV|iZBTxYOn0OQBIxOXvetIXVR z;x4}VJKtU;Uf+Dei~0U4@s-;z{__~C&LEwFxl-0SBIQGerF?!Sb;l7&$>dwdg5-bV z$b7bE7vq~vl+jgub3T~GcXbRn-7R9Sxsh!HhPii|=eTw~s2dPZnS+cUf9HGi87oaE zJeBb(V^;q{Y_daqR}jBx#1}n0D|zQyez#ee&n8UWXx8%0CCF9aXRgggPL5$Tat!!J zbV(_Ce9XA8iyN_HuPWJM7#ACKHr`2M4C7hGot}gVU^aHyBHr66<6rPz9na20{(#i* z3@|+=Cm?mqtKS+4h5{Yqeu&;9+)nXNm&p5MwmC<{l-bAkeg#t)yNv-u8OH$)Copy| zw^KY1pm%FN2;jXnH;lo&`@~+io(1IsW)u zeZ22=yiayJq9LD$Oh^fMyS~K2x2e=EgMK8sDggYSH zgS&x_*Y5%Mxzku{(5d+NH{)6#|91RJ4Y!u@tJeI|aCgk5YHNCQbC zxq$fti}@ar`KB*Ol77bY1xdgM;*$^NPmcI~eO7;y25QeYrWv3R`Xtw+Nq~2|d{5^o zG=p{m|74yb9_JG!zl`d87+Gvg>wwQp3nrMHP_l_c%9<@sS@WioX#3pytRC@q{QnH= zH~$n)imA>T*xX1(#+x<4ncy78pO=CL;9`^O)-|pF>K&!@ihn1rU;O-kBlTT+=sWa? zOXF5C^&_>-F6Uh0%$!Z+a>lBxwS})I%)E_r4`{;}x{ZmrH<*s4e|th$-}|o|C2`5YC zSxg+~B7Z>s3|Nm>-6G_7XIeDxXD=#m*RkigSIaWido%JYEM(5IgnNW0@o%V7|L$=7 zecs|to?&@glO(*sBgOlS6mIoMV3Swe-;D$}pwnvNj6UIINZ_iD=v%ZTNyfRYWukkV zeB<6K3z*+4O!wymcX>Z{H=E|n&uJeje(3i~z8Sw*>Y84P-#=M6elITd8J%nO7wq(B z94M+NyNjyH!R$22X3jPHXtEqRm?B3HCrj}jj}+~MU$GYs*;cPO>qrO6ZFr-{&N=E@ zzvV8ttz={54A~p3CYibAgf;%myn_j&0((5I;W5yM`?nrekDR6Dny)>2wyY~UOSS|~ zmrZUh=4{WBtwl9uN8Ty2FH~9fhbqaQW0fTX4n+15=93R4Nmf>>Wm%E~RX^w^Q4enkg-*97;LK`r+T`F_Jjpe6MQ~9O%3RxV!M1Bj`Cr@8wvAVb(^OR@H=5Q_9=GKrcg*9b+;56oQ zt62Wr)9#=W9Y(orWwLv-oo}7ReCs@?kt}iH?z!j7I_E6e?9`Usp;P2wVTGd1ymIr8 zW+%T{c)-^R-iM}-jnm(hhW69DW^esH6AEva3BlXs`{0c-BY3S$Wv+K>=z5tNzD{O^ zo5;__S290;h0J#^w>-k7%25fQC%=d5Sq_5Eed+v+&W|d$Lf8G3Td4E;T0XRF==|}I zy4FDYEP%VB^XzMwN8aSrk)5H_;G`H zg$xhgFQ0@Tf_K1tckp2u7QSCb2kw4ir?(?*{U7qz%DnR@_bcorPleu!0!~Kv&_L$O-|&Qdt*1OLiBZD!G|SgOy998S2Qv za{jr6jWfFi-j;g;W9@oDoA6h1Z*a7<3y+jeMMIqs`RPkHVowbY}%(*`s8X!Hx zuSxH4AE}?WPW%}G_#20$jC(|?MfTb?gcj}$Y3WX}^OagIbbk6i_$eLT&#XQ=zX>16 z@}GLTtdF3R^124Ht}xhr99=rg=cM&lkvnCQbBp{yeqG2~$9mSX_5`clsqsIMU#Z?0 z^1^+^qoqZ7hFl++E-i!K%Z-8Wx;k{lY%kBDu&i6NgPt%;TL2bag$Yfj2l_Peqj6omLh@7Np zr1Q4A4xn?zeV98|zSrOgy0A7eGSXJYvraO@X(7wpi#M%z&-N}1G;FQ>uvWzP!r%(2 z9oa1P;9Q*>`Hl6DU*$q)xioYZ%4NC^5|}I3gl9?f@Q>0mFhy<&Pm+rcu4F!txe{GB zU~bT}hI!WF0;%Yx+cHsGHrurVoh!Z&?oI<)V&`$=1qZ&JgD&K=4;;A9ZU_06Hu5L8Nux>b%`f!~y(X6j7f4n3!lxDOmMVD%q#RtH zQ;T;=6=$EE9@;8(!kbug*&yeJf0O#?cD{1TiWf>U>l1dKQTewzf2&9jNfLAEI?r3) zIb_R)u8-A_?Q%NYFI{gqM}F6NcDwG-&|N5vWS(3tbEKKflvb>T=sM9o&KGvQtFwbH z?z<)FqP#xMTVKhYub|7A_K^{yYc&;)9+HIJ%+o6`>u?_HGr5wSl`mxvAC=@ncu7Ua z$m0j$QSFyXPP(M6W!_NNZFD|VIX|PpFJLumCE27y4)g!HtbGKINmA&jq=Z?=aiVJ# zx{h<2?6h;-b=?hiy-PW5%CEXy7T7hfYaQxhINZ0n-`Kj~0e6^P8+eL#@)h?bEh97F z3@+4lx|(@ArOZ~ovledJ64o_Vv7WFBJFa1EVqI8LHo^1S5tP);`BH9AuB5ET?mCzH z4(J0u0)v6h?=Aw{$V)rW;{fxrnec3~fa=5gPeLGHlEX(OHIgN1?m_a}0lWTUxp{W3 zeuLC^SIfn49IteKv7A7y3z$BXJKXUlYj@Pidnor?8oBeNQg)^!|H``1j6zAAP8v*N zjbrPjwG)@m}9zn(}PlKeAq|AKf9CBC2V-uGG098x67gTZ@6QhpE|{g-ki z`7!RdC!HQ*J*F+(z9(1@dWiL>eylIN9hT$;g)%8}vwS1BA#ahfk-O#n;1klju)lQ9 z`&4eso-Xx|Y>+aC^28h>tU57dulY8gG?=I!n#zIBdkNM#Qx)m z+aTihTv!qxrrdP|Z9yCCdSh6UuERD>$x~Nh_r{zzA|G8xyqgj4`_O~uy)TF5+~3#P z`di!A*WKqVl$)zzZEv-W()yhhLfdA&;P$iqR;~N53(k<**{tWJldjZb{zI&*Wx+jV z?I^K0Ps-9hYTco0-1s|eyI7V+%Iskcj^n5$=AJn7;h)|FgI)^(!>thu$~-ks=9{F`l^W8+g2KjIl*zl>kgKGD-M$o45Z z$mepmj3rNhC2izuxkhHmC6OgkJ~LaAw)4*I)Mfk0Uz#Ra#0fpL%+p4Ws~g@>;M;<( z-;fvH;r=tM$+eG&|5|jw&i;$g|NLU{!U^=%;^Q ztK>>zr6a7BWwB<;JJSw}w<2W(o~Wm`BmPT>KfGMuYaz>VxQ2G9If$;KM%Pm5f!n_I ztw?Qe^`5p_+RxB+)r(~rWpur5=c!&({VL@Rcz-AEa92HWSiRecTW%n;oO?L6 z{Qm5@-UZx)N8o#sHQxKsI~R&cKE}G^L69Nd#Qlp9H_%DYgh?W^_~8pu)`S1p4uiln}*mUG z{zJO$L+BWxCL95+*R{<(EwoE2g$_t^Bu5e=xl%5aDGB6n5AB^t`NvzZ_ZsrcBI2g& zyxO)aA9*HEwqtpwKhHeC^H-z8rIgpo*uOmXX6@7C({*mve*M3~g2o(;7*v!ut1F`Qp2Uva=h0MTmX}aVis!zi9l^<<#JAshD?I%4Fw?_ZYe! zBfSgJyD*RXhB|mJHrt17HJ@xCo~#$!b#YxQ*0o&ax#+s?uWlc;eJuXUAQ194@&T-PZLYo#96i~V!K&*-&CJPGi+%TgwYzvn^hu$Xk$wq#$v zB*O7d+yl3OK9y$+_Mz;VeXMC~J4{<;;4665S8FqI+C*FaJMmX;_I%<&8*Vw;+8_A_ zs8symeq~m`KaP*_m$1hAzI({>m|OFkbNDTM29u19$S=O66~yxw@g>hfPGznAJ9L?7 zb@3+7LyyJic>s<*bu_$q&rj&DYw$~W7yW7TJJ`&6ByqHB@tSv+a$ocDVy-XdT-WR8 z@Z66;Z9N%ie|8cW3qA+K!51vMeJjc_{p0aI>#Fy1zZsz1nsOQ9DSMDOE@y4@XC%C8 zAM3ZeZtwky_>L#u-+)=-O(qTed&S#;vNi-;>e~GR;-vA{xM{wf$2;M=du9;UIBFii z##WAx-n02b`>z^b?azJ+-Uma0uECFBwr`v$zfF&5-ie0?$^-bviMbTi0Pj#Suko#SiR*`iH4Y=dINq!F z)I6+tVI-toA{^N>=^%bUBTz?{po zHE4spTZkiN(~#$VnpZ|6KL#HW9!h+Pzi*_~&67y}sjy$X?Z~??@jZ?ITf9f(qH$8F z9_VDb5+87HNbJ7$z4dvG^zS+ z;=7Q@8h64d&RP3U1eW*k3Fn^!?kBH+uMa<@Iq`T1JPnlp@H}`1DA%D6@6|Da+Or>F z^*wkV^aaX|=!Wd2VbGoPCz0J`8r+CFe-Z7tPEmQg)WUC}$do7Fd)E_Bt!v2l9&GL# zf==)Tl(XPr{XR+K|7k4#YsA!JETi$i9kc}VcN*k=y$TYL5*=~8~<7OxMr#QsvFO`L&i{FdZ}wX z?;E=uwY2sU8=CbHT+xb-E~a-UQhgG?KY+ zQtmX(EI;J<_y6@!JRcpGp7kx@rQq939H|(LhkQfjVDpgr@_5PrHvWsbM_%)6=l&rv zsrk0wVX9IW)ge!u25J!3ddRw{2BVk#9fAp z*ZK%){!!kIAuo9-yN33_GZidEmyO8H~-9-@U`ObogiU6+3TgGKK4I8ltHD(i8B7(q}cc3 zG9Itmv3SPg8;if{v4__sA#;(cpUS?-0AEqPNn{MB_Ef{FeYvc159UGE=lSNKANVIc zEuQ$-jw8nS$zXREQHY37MzIecD8DHPr>d% z#$18*^2*?J!oaBqYJ%D(1K+zYQu*)HMgMi3w7lz4y4?T6c_hhrBWd{BRWOlo4Rkz% z_4V_>#e^@1FN5D73~B58=QbyNDL9u-^{FP#5%|mZ|FiG^2k*yqRT)3xakb}C8{Sqm zGdOY79^ZGr!BY(JV1l~vgzHks^et2O>x_fPz`J$G+1mFS(N!~2s6`PuCl)i+E!JLu~?%sF9AckB21B4PA)&|7^% znb8q?r6L2t%Vt<9{Z9J5|I+=^anZ0InhwUjhgpgz(NXhpcXT6fJI_QBd5rU?0r@(e}Yb z+lU|XhGZ#NpCpmlo;>`pOOJ>DFQ^{RODZj>v+B#+)OjP&aXk8bLfVZ%H_kP08}!hh>rKd;{| zIb;GW=2Ow-YjmB2oQ*!;0IkoaBe@nHiJTa_{sq@Zb4_i5w7=uoz57p*wJy9kct$(J z>~jRyFEgj?cYG+WYy6vk`2K(4emow={mdj%Z)LDUnz*ab2Y-57f6YU`#hlNI+8~UK z`~;?O{yq1wPguj#(EmH+1S1)%t5{y&0(fN8|$3Fm9T@6oVwW!*(lgt0^TXTn;~t5lm|hoei&TJEg+ zb1P>{u^et;V3&8byO9~oRmc6xWBSMAax$rpoa}o1+W+Q$$!`Oj%oyD_;BaPnDcItd z;{DhFWW!0#+mj$c_5%xU!Unsk-?t)v1Iwu&HjwVvM)||K7lY=X;?;?kucmu!#r6LV ze$lSNQ{fM$DwjAA+Tr;TU;i%dCc9V3pXpK(znBgFo#!R*f@_@2{tcO#N6X4yx2kLp zR+nA*aD~%T;Txw&4mgsX3QxDZ96gvMf!*+^$sf6g6C@AraWUNE$U5`~VYSUB_{UC1 z%Lg0`FEPq}y~%RImA9*PqVk%vj;2aZPD&&{!@o4J$I}ab=%wrpQM!zjwo5#|D&xoh z_P%{j!7s@zH)X=MJO*c#`f6*aCd|uPvOdV_HQ1$msyZO_6U6F2zycl zD$9{$Wz-&r@(w4CgZtYVZg#D>qW?*`Z{w+-Ee$k~d7(x!Cj^f-(9rHFx~BLnTaT}m zdX(P_xOSdw2%I51icXbnq3V|Nyv?a0yWpqq&B7)Hl_aAmO%4{9w|j?{a5UVguet8= zFx6%64ETb&KdIJ_%N$q&*yA_%T+8d;hCR0P&i%p4a=4(p=Di)c*-2ya5BWO>_L+Kr zcdw4WVK2=)Mur*xj-53#76&htpM#BLcJONWvM?PY&DclpI(xpT_!3zZxI~r`&t)!* z!%zcR2sixK(D||^#{b?JtRw4P7)jwXbT2)-*M;(3mFuBgP_>2fY;<1~-3u>XH!6Sn z2N&M5+l0ON8d;96+GK@$fwlc6w+{KEhU^Woze!OAf$M&V{Q$oyO80i7yjN9cxGbbMVXh$sN%MwywmZ8cgW<>P4Yvr^2K2!3EuL-8!SI^3f%FT zaN*|^!k!3SX?f!dltmW4T;>-yl%=7I?H-4#L-p*wBQ5c>SD*VE<$LJ{>st2&93oxh z6ZZR1zG7)Exz?5HZ=w8awTJFWqMUN&rZ2(fE1mPLJvO><{~hK2SCK>c_%dWCAA*nl z4fS#tXX`)gof5Z!>Z(WF7SS{Q9^O)+&&0gj*-PbqyPx4l;m*VnzIkzH`7{JKJanIo z!zL3$w^$oYhVi0%EZVxAYg0lu$d85B;3EK^-nmMYRib=r<_*lB%$_wmA^P<3BhaatZLhbPed%?U-E*UJ3Mfv{Zk5AjPk$?Oc9t!_ zJp1CJL51Dr>A)cA7GiIk&>-m^87MF2^^uoCaNI+^WFYt73Oyz7Mxwm^_k)jNkFGJB zke>@XVHbG!q4x4c=pK328DP1}r?|VNDjXu^K`Gx_xykp#0aN~aXZK^vtya#O)(>hA z<@77Go)`c>Z;<;G-+0`n!-w)P{uiAr$57kTvF=^Ayd1ATn#z3V3R&)42*>{%*$}A< zH~ti1Um+>nb+2R4xE%LTJ>AWM|gHfJ;kC;@>|FeNN z;It2vXCiM%uTVdEHNUs?4ZR=(LeI)uLE>2W1a19OF?5p~!&5~0|Ejz4>fm+3on2~q zv&!vN&bsdZq5NO1A0Ki*5#1k1_v4B4=e5m@+T&Hr4c2{Vlt=$g%r8KFLWa8P>(Ji% zIH^C%x9&|cBSPB}!4{D#sGl#ieednz8j_Qhys0?dQ>kdUTH)^&v=$9JD?J&D@#R7osKp5X!q%o}cc~bdNj6@`&R$ zQSQC&n_~A&f*-B>QQPto%Okpvi*h*C9_k;Z`&@nQbg=nvT;vYB2h?=uI{7(tm2G1; zgzC!v;>r`Ui_$dx?XkS*;>B+jJtggmN8)P`-NUF==sRhJzs#-SiNdZm7HvXbOKZz| z9Ve}waXddtIs`{V_h}8YPiygD=^A?1mYoMe!!3W;>}8#HgDWX;yL4a7gixNG8Hw`i zly_X3uiuJ1p*}kLU6r>g*PXVros5+GWjL+HC)O9?VQNZhqmn$LZR*SL#?=Q#_qNhK zSw9G|M`@&!jKVkJ3-@lB7{+G=JIryemfs@mlkU`QqRQ_NSMtvcHp}T<+(&LI`c|$* z|7O8iaz${yGz!j>MuB!{Al+%zaczT)IMzrutR8^+=XAs-QlrvUud)_ z_xK)AKYg9`y-@!PvmUH~=b8(jEtt=K<{5Ad*UN?StK}UwpkC1Zmvo zB;R8DZ>;@qBOP>KCgrrMO*D_FKZBN+r^$cM3SLcGheTeL{$a|AgRc>`c;9(UhO?); za+B3h>PM#;eelb^L4EIzQ1x2l02ze_3>!%r;O1*dW+J|BCfc5t(t5!xtc1=mZxz#2I}w9@)~To_(17l)Qg zh7=oy)o-<^0+9EaJ%ATFSR(zA-n<$S>Ic;Ns^4R9bunG=r4qWxZ0yyw+DdF@d z<3pmH);QAey-;6;xJ}}`R?Q>I$yL7v-Ipt#N8))yeao~iRX>@#!e2_;m@PD4JmIkC z9QCLAFlxK1_2p;M@iqEyA8Os&G|axjdD|r|>#!tjA%1(|4etoxSCS{*O%cNIHV&|| zd;o6xkz?#f1&24cP|6;G!(YgrO4RY?@eT6NBi|3>IpxKDf*ghX82JTqE>i8Fei{ei z0v>{IN!XJY5K{=3ya+yaF&u3CYII*T>l;A3ss3|#$;v6R+j6LNpXf7$JP230o~*I; zi0&t+^+zLTo?PS1;(sK3Z*388XEjgg-g1vnSM;FQ*<1Q(d6@B$`|vdFhg|9`mWny> zinnG<;(GYf3*lI^*KoqG*y1;M<%{wEScTt0%>O2F6THl=5mA}472lP8JijCy<9u)(1Sb|HL(Is)G!Km6YWY>^l`CW&F?4QJc_ zLj|F{NV-&&y>`zy^_@~5klKvY&*uL_*!|j^1!8@tC@Z?hb39L|ADGsgT30+N?`WTM z2kqz5+u_+?==>_F?1z=IlKq<(k~i_uNuI^tYTv=T{vKUtMkIL(ej<7eE_TWf`1Jft z92da*pU*Sjk%q6LlX47|Tlg|iuHkcFFi`%c<^i>Va&Omx&0s6ohW^`u`tqQwCtCkKln% zjY!v`!7?JyLEb5TO8V#ZmY%t9NavhS<(91PVD%2wM89wqqWER?6;`Uz3Cg5?BhPc_P_CM$=kD+b`2`-Q>v4j3Hac zz}UuNbVQ$?J>_j5rhCy_(k5@BG|XNm)ef`Q+ClP&+C%e*wF%sGY@z;Z>RXr^%wmss z_EdBZSbL~{p|&epmuj9+-^kI{sZ|C;#HhlN@AkecGs0H_O(a>X)c~qw3pnnJi*l z{(T;hdd?c_LzuigTHcf2#UF0~b@B7$u`Z?sTKRVeG}Ox+XU-vK-Jd z&F~XwguhH9$_;xWs{W}huw6TRT5iKn@j3kU`b4DMyj zw$Iw1*Ktlipnd(gZ?q z#fjFRIu=tqoJ(Je*_%!3`G0!;cDv7F;!o(xKAH*m>m@u-I%=6FeUm$&<4q!oH*o!0 z%12}J0{&U1p-6Hg+JuYwW_{XZ^1@?<;_DNZGnQ?)I`n2- zr@H9au2)Jo*4o4RaAfYyXX&J?aYx{$MC1whu*ts zk9Jc3?4d2m!2a3n2g*K&DMji7eazOGy4NUe#kdP)d7v`oO81#eoQQrSdG;mZ+k^N% z#I;yD`QGa-!R=PR_k%?^JxD^ z`^f6UR5P@ldW`mK8*$r8dE1E%Xj9Y|T-#Y6Wg{tg)V3M)r@GlPU=U02m0OYPKx=$(a)!^ zug}}DCvEjD+|#jiA z8h)eIvhd?NBK~qwUT;!m{Lb(%QjTx(8MI%uC^Hw451V6$_PqBEN3IUdk?33)|9^t{ zFm00+>{?;xNOi2OW8dhwPscaWagL68^m*;)Y1!4eq`1!-D;AV##wd|plH%gq$p7B( z@1*>0KzH?W%ARi*;tp-t&fDCI}z@c%nz(HCJ341HA}ofFl$;W%_()>e#p^}fy(YCWy>wT_q7FJ8lT zoXD7{rfiio`h!*I3#z|cw2b4oh<^U<_!h1v|E~lqumO9idRLPE=xXrO@?{5_tN!Ko z=M1&~<6|^w{V8^Ogx}(~Y?{!IX+eHJn|^w2?1)~8r)J~#hF)b4;q$gn5>t0zgRO+u zh{wCr>Yr487m|Hf(`c)!;e%U`emy>y`v1f{GlOz!XqTMjth4iA>L01lv{c>V{dw)* zv-%;LuIh^zhmLzRk5`JM+cC6`lN4q0**BQ_&67hLyO(^ti}Yk)Rqt=;gI}NZl~R8x z9fPg`+nqJKmn`ag@l)&R`Hkm4=J|Jc{vl)sWD~AkPToHq+tsFTi?5|82`;|bhR*mF z7<|zD?9re;As``nBX(E`Heidrl2l=vc&cE_+O$CpX&X9`|F_e=1o1ZwAG7-`mlgJ} z7WS{UeOUUj^y^P2P1ToCVfCj!Ta)p41@_=br9IcNfc{?n2+Ic8>-R8eMIXRRduRV2 z$|l12y?R!t-pF|Xzc=gSsQ&+IgROQ?S3CbjxoGV9g=g{0^1jNm_k-4;A?I;_$7=YQ zrmD|lMpXZV4M^Qva}~ahE5w(u5G>-_a(p?}9}=I=GMmXWd6HO%@1#16Y=R`~N#}2ly7Tzh93o@j9ZkG7-D0BFnD(rY!^*@G9_n@zi6&R1I|DKmU zitXOL%h5%BITwMS&~+O4K87EW%iYC{y^gP~u5*$-)13m{i`LVF-?YQO^G50j>U$q~ z*HZ;sq*1>a@;T}5@h=l!$};3!@g~d^4}O!z%qCCpzw7*q#GgE$^EK1~%zsf=_|e~g z1^T~({)`cmiim$m_abJz9|lFtgRmcQ8U9C6ayso6dx&d4MxpJN`hr^h@vHP_Fb3I$ zEp*%jbiZP)*VG@-`UEcH`2~b^-f245Rre`C{VS(}pJbO=Db+RK{{iX)_#y9mkl(aN zUXHv3c^d6_8OAmhwQk#rPoL&>_Et_*9e)Hr;CqSw-kaKGNs^<)#<7?ITOQ7RToqrk+zL6|5Mb3-qjVQ5!y0Y+p2ziFSt@hW| z*HnFkJXMd`H1s5GB5ld%DNB(*led3HPD9V{xi*>d{x!Dw&f3G5j6FPyxQ?yZch+|{ z^BL@e?!gz@%)&=@0dhW)@=01mZLk>`gVtT1O+fSU9G=mK^UVM-6 zAtWuW&#E8YaCG(H_i24rJzwE_1@K?>CaeFg`mVAEwvWB9li80uf&US89^BDJ2v&sOVb^l;XwCb(ttvZec6L@w6au}c- zTN&4VgcRY@)3!v{lLbDNviJq&;jbp_^e5&F;&mqVj@d;T?iNqVV)R@}TR)R)_%7n3 zYyE^&|3r{5inc-hhVXq&rVRMz@*CO+-)`DI(*7Cr8UQ}Q2E^Gjitsq}(YY~==eRid zzUrm=X&KgZodh%wYkpQtj7im1LAkYZDDpiphp6J>KonJ@3#k&>532XdSe=VO1wS(s0FTlq@)ADnmdXEG;kMt(c-|2nT@ip)U z(D^l;V|qP?H`%fCJ$AZ{mUB(@(sf?x^Juu6w6eaJ>ML9aq|w%SH?tVkMV;=cjFs@y?#KF z2abyeSF^-0$2uYjK5 z8SoT{`X;aD`9`o={#d^q*YaecdBfA_O_7h^l4eH<_PQY8@IK}aY}x9-d+#UQ8QD!iSoQCNd-t<_(U1KcRP88PPnNNMlb4o z^+8RXfkc1)uYk?-`u}ZpuX**`R{eb-d2sYz0yeO|=fCi~bbM_YKQu?bTZ!ZC$d2HC z@Gy81Jfi2^Q+u>Swu_ysO;k^{7juc`VZvRI`hV>7nR}6UBRjEI|KoTWbpMAvdQG`E0qQ4LQedwR?CeQREj1Q^zBhE)7HSaG2 zN7(9M> z&-^j|$Iqjo@@uPG&e(kud&Q8fb&HLz2<7(lhj#nR9)m3#?sL#6xnMD5A`XJ#8 z?yLT*qx7VpTcbCVAlM+T z_whLYJ3|*!eFeI8H^`Vy?>{gv3JGu zLg_len3O%$jAwni-K#jQ;*j)C>Eu18qP# z`Vyy6r&L3i%Ag+5cD8;jtTs6>cCPiW+CXj8h#fhvl1H#dS>pP~`2G9N)eLbP#7q+V zmS_DH#`8;b&jAnhzWRw<{n6d4X-_?1|L+F*-%FoB+ehDGTk=v<5aO6t-VYlPR?)g|rN$>SG~?VrW}@83WE$+!wO?%aUAo@`+vYCmoWrhB+cM(_tc5rPwd0{VQB9rg|!q}q{x>mpr z<)|Oa6=;7m0%oE61K8j{?N@)IhVgu**W=+6bD2%+6TbV0 z`20ouO7idj^!F#e`y}U!c=yz6Nawk>zfUL4SkUen9Rn!72Bg1H8;}PKHt>)Sv@Dp7 zA+XLQ9R85~6I!7=HZ9TbB;PB!r#k&7@0Wge^hSr(8|8t`uU+moTCsLpJcN{0~^bkL1#|L}F z;}MTvT0<3k XMl{yo{bC6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/lend/public/manifest.json b/apps/lend/public/manifest.json deleted file mode 100644 index f81487cbc..000000000 --- a/apps/lend/public/manifest.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "short_name": "Curve", - "name": "Curve", - "description": "Decentralized exchange liquidity pool designed for extremely efficient stablecoin trading and low-risk income for liquidity providers", - "iconPath": "logo-square.svg", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "android-chrome-512x512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/apps/lend/public/mstile-150x150.png b/apps/lend/public/mstile-150x150.png deleted file mode 100644 index 06a5e1831a5cb9716f896e3a64aab4cab1d7408e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16549 zcmeHvRZv`A@FxV9;2H?-4DKG>-Q6L$2MF%&&fxCuE`wW;;O_1Yf&Y9D`>+pNwU7I- zHFxUPoT)RXPv5rl>+XqAQjq+L_ze*P0^+N*l$Z(x1SHCTZ+KYnh)4ZPG57{;DJ(Ax z0Z|`^^ll6T{!C&jr6Laj@tX<)!ao=S;uSpPe+&WP#tZ>*Y6Jnnn+^ei>zLJ{%n$wo z)@S6+8%5_km8Ra#yg?hqaqivdYL?*kJ8LP$bdOjylh^`hIe&TK`0>xJit zvAw(aR9#)ut$ATX2YvMi9zQ(57M7WaA7IiKJ-Ez5HT(-Y6(4T9&u>y}`&y29vu@aw z02Yc963=u6r-33!cv(b31*wSyL8l<3?~q@zKYnKn9cHLuK)sTeEL& zc-0f#-6k;O>EPd?gHRq#WWoQ-*Sc}~o-gG1tS9v{LJ<)w$ponYR3p}*my!?C^PX?a zI4&F=A=3|EB2H_M>Y$}1$C6N0gsf3xfdDt7uXx&{uXS9(6SR7_*T|0O9#kPw)Z4Sr zIXQ#-m1=6qYvG6^NWr;*s<4}8+h+prv~aZ#jsx@hH#kxOg7IQ+htM3-op#v)p2RiL z+s06+zn>|t;fRQC98ct#g)X0}*4xV*3E8d!T$Z*whp*H4yJ|vr2pysGrQidN3Vl?J zmfx{hjgrKL14w9~`rzaXFr5AdF1e&yWCT-tISSrlN_zKreL5oT3D-qW-UD8~ zNY7~3@h;~%PN%ChVTA)u$Xx^mx`SIQ0S;RsRaANlssrM72!42-O}TBfqJdtC=v5KR zjqsGlU;cckCtA`~I>n3@h^&>e?tsWM~^vX7E;zKcqspf7||v5Ens1ltqic;uby{9`&Kt#=?upwnZUr zR9f2Re;%H`&fy6iSyH&|ZyNCf-H~n=c*-%Li-+ua?g=kH6TXik`}Pg4ax%vf<$h7W z_Y-x`UpwR^(IQCQE(qra_0I-V9f+V&wpVA=#p!mObA{FkLLBA&Qu@17>arsqt?(mJ z83Glu7qScPIo&fldrz=*{N_KRuSv4jLWw&ewsb{wAkt2%zDC%AmYTvtjNnrxgnoA^ zq9w@(ij&@;$f6|%PdALJY7xUs6jbF`4a^w8QZL~c);1T12aQ%5ZC@E2mhIRDy9jp2y9m}36`e|8?@6HauLqr{B`G3 zf5-7bouC;DlMVdrg7*o+cVUuOXs2=we#Z9Hq0uw*ZLR=AXh9>QKU$+v=>IJd#`>{a zwM*S)d5_o6k&xt*f`*K3BVt0hL{1JbsW;+;sxKi9y>E+R`5I3dAD$tS#87V}&W*@B zVe-RL9fZgGSr%R!R;dH$R-oq^aN*}<)B97P%_XewK z{(5dNeSB%$46`{#A8?}zn6Sf9tw%|B^x2VuU$O)c9vuf3lW%j--m8wX9Zw8xTFz$T z&B2HS6J--q_$Gx*O`F(xy-5IZ1#Jz)&d0+E$m`KOzuV}M@AR6ySYd2Bd}LdgUaHOM z3I&rryA&nA=iR-d3aSJgESx$EMQD-DXlPTCBE0Cg)MlE#e)Gn#X32uH$%MN*MySAs z`!(BNTu^1@Na{e8iykbNqeiy?3XISv_8g?uC!|>D&IR3MbAPbM8a_E3e3BnP9e%eC zShrdRuQj*pL7&r#&GD&)ksN}Cc&+Cx z_Y6IpPO(nO$`Q0}9#4Dqh7rO$sgQ#N*O|mqqF6)0KMp1py3JD^3|a({T~)o0U3y=;o)bH$Kdnl1jnVQi2N{*NX-+GNXiQH@BSOX z-N_ae17in{6~!XO$w;WbXf#8)vqb^8qxbU}ch)>s&zUOb~-ht-u3rTc;>+OGf>m571dzDnr z!N!i&E#3x}JzL1EHfF3$SHwHt9Qc>DF*RhX`3=`km@^5(-bsbB$6EdFD3UzLOHFiI zDU0RQGk4NclmprFN~6Vl9e)8-3JT*3lU$nAj}Y_b$M=&WM3I>m0*_MEy0R1fF8usk zpNR$YTE|)PSz>kj{0M*^J-M06-sq2WLzqBLu34NhlVKJqQAnqC*1c^G`o_=G zZ{rANb6r%Y6pMj!5Q%}+yu4aj_WB`aO21w8-AqMDBWcpkf%8K=hr!7;T~g?12_PchHCnf`C0}j9ybFN)Vdbg|*TQUjJ%V>#dwlon({$Yj;O7mNv67d!F05x&58k_89$-XBRsF$! zNAjY(aeF3KEDlLZ4;DiFIIiok$#@GL!A?B2K~8Z!oj*pYvsu-$m5AJ)frz(h)X+AS z>90pu2DI+{qh}cR2VHFLlh80QCrYT+*+-4rK9$xX zfB)cu%iYxp59*(-6YGn!oC(hlx}j_gDSZ^4(W?U0ME&wY)3ML|a-tOBl84Bk?>NZj zLzprbBUJsFZLRIuheqR4@owK2fj$cJ+5$H`Nx#uNkvpPep_TVA=es$B_6Qu`8$MY+ zs6Y3Ky(~#}oP{yd zH6Yquv7n|{fM&GJAJwXOW0&WHoHTAMh-|L8$HtUkqXWjMhchdeK4sVI1H{I{$cRaH zeo?dp7uRmuiP56`&g0Mskb^;0CPzm=MWRoFR(MvrhtLQDzfj~+?wem>jR7KkTz$MXlh~+44^hoV|U(CEHfi|Wu zFpUx?6JSY9sh|BcF9F+%zvg|0pj*Vx#`n4xLBaPfZ=4<}@PokT_sfEA{8N)N|Cbz1 zW@a9_;tT9lRH!@Qs(Jx6( zj^bbFSeea4(kcYx4nXo_@%V(sxjunX3$u5TFmvQu5^vBuiM*J{bAx{(?xJfJzNZ3x zdte89Z+b`L90LtG{WO*WJQ+A4F6K{Yv}Nr zC|bO{h{b{Lw!yV!|AY?8#7J})lr)D;7H1-tPolj5e7j!|2|&6@-@9RV2?w?!?tKkybn73uk@`jh&f46-T)dMuiz6Hyj> zoO&Njpr;UYE6PJ^@ujZ!e5pz)0(V`?h??L#bk)=HxN){nruv+gkuTz}r*s%o0 zz&m6Qb=@t7iQ+LyWyFlkcK=}!L3k5myKpY8#^qDegIy=SZV=mUXe(a*BPPzs*T^CJ z%xqTeY+f_K7-r2qoq4K_6^OIHo5{tR*QrbpTyPKp$ATI+@as_Z2SZWY4C?`mI& zfujCb0S@bNtJ;%<4L)(@X=+k)pazK&kdSlWf%0r|xH!Kax4qZEZaX;{36ALSQ^H;J zr_V=?XSV`Qr#jf=Lyy=<@yIGjA&is!DFu$CA@$FdGTmAXMUUl z^UqVb7BE`z?d-e7(6gA6YDIqWW>YdS$95^@8j`eLi`-Cm{dF6 z&ziw4hi%F$*{rCh#Bc^r9TWB;dQu(E{fnM`dag`*u9UO|b2<)bD%sJw*qz{0UpRLy zCIB7ZS!J%=_IyNGQ)lg<WquAW2(&yY{-~~y{Io)**G*OUYJN0nUhWyZ0k#tg6ksLWsVD^#p%suv55IDbibN z$TpR88ISl&sTCsm7L5E2GobT8(pC~)rvTJG(WmRP&JFb?As0HG+>%kuaoawlOjg2~dd_8~9$e6%Js0hz;0D>U$$_-lOI>kwr$w&3b&uug z6ddgEnaDC%0OAOG##7_GIFs(#Oysrj_j){%lpK@{USxfLldzhwq0s3SfJ29+K-;jJ zlYPC_RHoz348I&z-kpbwF3lsu`b1`5*=+Xl-;@CL|*ERLy>*1Sy9kzEeE zlRvu5ltPYUt^)WFT7I%h3IsYLAG0z}aL`cwhWvv<%bMyimV0aX#rv>LNY|Z=j!+V0 zJdM-M-ee%{G>6@B$gJ(5t@8awZ>B7lQWq5;TMjLHS)WIV%9xklBp&*#@R2!g0H&MW z%<`It@+)oblF(h zXvVyyg2L=NE{FmrL5q+uwH}{^Wl+OEG+Mgw+dZpv26CwFH0EMt9l)JOj)d!eL>+f8 zp6FY|5r7L~Z06W~YtI0q2MRkDC=#-FoW*p$IBU!fj8D=*gF2BzkhXrk_8b`u?Fs%7;ECFlX zZdoi~l(v(caN44U56wHvM39Ci$P=d;=sX`nN zR7tgZ!}&DUzTOVjTlBI~T2;MZ7t8tMV!5qI4vq(uxDaVI9fnm!l9W?dPH=dKRzSU@ zRvGJCsJ74>RhjS2%Rlyw7cdSRF!SmaGqR;>Mr)q)hh87|e!Ya?&aeDMKXiK3`VSPZ za>BY*?+Hsp60$hgKAy;AAs{auhDEx7P)jK2qi(j~aDrc&WTU9lV|UT7Jv`H4|Kl-w z_A&XSeGoSy?Z|+QC1tmTVPp7Ss(|tOd$z(XoOC;Gej}PNKd7)XhfC?Rd z9k80sL@pP9h`C>Z4g(#2Onf9Yblq&YKr9*PqN)r0D}8%Z+qT1}xH1NPF!~?iHd&LL z%L1ktG{5n?8_stL*8mD-iRGXhW&>fF(gR)A8Zs^A1!IQ$*Z8MQ4xLj4ioBB^`Mgck z#mEFiS;;aNfBRn{>`iDnd>Oo)Oczcs>tl~(wJgCV&TE_2AU+q6mClku^#sm{wWTC< z8I|#5ID%+RgLp1JRLOk?1Bi<-m4#e}RiRE^VfGTJ8obbKW6igpwS4R|EbfumVh3Gx zN>KIC2HLJOWMdiR8rTom`^egm{*Q1tPyO2i?*cA%OpBnbhkw#XIiRQxnVkgWsfbcc z)MJ(KiAv@%+zvCrRE*%^AFJ>`1Yo!jE@PyD!|lx^MEfxwMXuVg8EA}C_Rh-cbxxkS zbLQtOZjaiQxg6tEjbvP7iJ(@rdsj0xvtXIorWY%x>U)5t#p=^MqWXZK&3XN%4leny z9Y4r4eSQzIblD6ps*uWf-2cH^4g>WGU6wp&97k7Y>YtkhjYMdXedMB)f&$*h6F5Tr z3ig4}Ifq%_*<|44(otTyZR(!Uj^Z!n$|n<7W8HY4%wlRXC~|h$@^o?M=Km&7%tgE4 z^vW|(6q4Yn=}+`X5Bw9nTuP%AHi0ajRrLRs=rlEWK;O2yW<6gwU_4}4xt^+}Mqx+K z5@V2TrG4-^`bpVSKLKlV&StXyHz3|Qg<)}-x-hTG<##8a)=2?&KDKi7QagIuRG@4g z-nXs*&r}sNE7j~o@4eFZ%8xOEsiP*B$MFAHo;WFoM`e`$z<<@bz0-31Y!cBARV>2~<`>L(BdHW+)SsppP7JJs%ig zCXZKMK^UAgEt?D07AkEubUipEBXr7WWbb-d4I(_32%5$X8~S^Yk5n|iJG*yS3UG*@ z=kR_wj+~>KVp%+~@R2y|(BkfPo?blvrdXBRTYYp^2bc&ZUCa8(kO-*?E2oP~T|xnt zfOM8^iX}V^)#)pt!Iyuf(r3R}qA+SpmbAVzLM^E!EoS6@qw*j?T(B7P9}g{a6;=@c z?JV*67tB|DFqMBStw*XTDe>{KlZ9_gaeaJ1f)XBqY1Dy#c^~} zoliYZI5UQ55B}CWO8Z6MFXKYzCyt%D-G9rBn&O_xSUC`_4ljJHAf!CQAhzMr2dXw{ z<3u=cBWEyaGd;HZ-9jH(;+|;Av-2=sW6;xe#T%LL=a0bTjbj{oM#=)Lv{f>*JTVr$ zSEV%N6Ms*h`TKq9`NkT^{U-oKE_{W#a`=h$6HQyC3IK!}8|@f+Df2&a!fo4%f0}n> zW5S^CLA>$H68sj5uuh=)Duq8BRbxK7t{3%AyjoNi(z4ZEiv?b>^Yip}_1N-V!VSdO zq_B1Cudq$Ra|gP({10$|I6Tiu<29sbI%=>krfDcTex9=!@cKlm-q{rOm{=V#8&~Pd z;#dYP~ZAT9RDc52GMHCvXzA? zP*8j))Kt~Mn;O=0D}9!`rSv#g(QY@CsvHLWqjr)gp)g;B{=veg zwd)=yI!iX2JjvEE1&~@EXe;e-e^GSmX^WG5DxN0Iw_rVPXDpFR`%fe3QQK4jHLRE-4co?D=|5PR{94;UHS4H+ z1K)=VS=%zss#YQhr@he-N`R*<*Pb%{XI3el=%nj%L+y(O}B`z zt&%g7ED?sbmSHgU*9lU8Cdu6*tk%(@8aJX}PBM%V%FL?{a-u zl`qMb@Qu>uMnBgtiI|=N#ixnmDa+z|Gdu9Yf1{vfB`n~^SIH883E*!q39lr%o)~)? zNN@e-)->3^ytR_B9~hO#YojISGS*VW>!2l$cpSZyz4Balb(}m6$w9P-Q-O;8Eu)-t;Vl0zxkdQ)T5E*9)0f zdRFDRuuwSCvXK{+N#l5@o*nQTmk-ULNnppqr-sY*pUz@uJ!I~c_G#k~^oea}Mm;eo zddJt+^@905mXx@lM$u!SFHbi>QfoK1p=G5^(f>6a)`fC~%q)0x~WVQPudBgmlap$gNj6Q6^O_K5wuU`@6q(KRPb5 zL@q)lKECV)&1IE@b{D_Pim)wnSQ@CzVGJ^>FI0=1G-~E%?|n1B@rT)gClfyNU08&j ztt)X8&6AypTqAvAh#GR%;RdnaF5ZU6;a(CjnyFi3P)+%4(~hm|K(oE_b=t})#|Hm* z-kk02nE6J%Y!N2k(l)++n9NBjkGReZc#u+f4(*kDs?I_Oz-a%LXEdp2H`)DCbMTUZ z;oS|~uJ8_L?s3en>C&r^Fb}__?J%l>A3<0}RLKoU2yHWWI^{>dUhA*jU&mrE8OS3T+ z(RI@JQw-Yf^FQn-n!n*xjLmC*s zx{WIp-JP!s8O1V5A^zse0u=5(d(KiE*6R(u(YBgm^xD!bMUh|fDnUg*0dd?dkWKRL z^_42@H8Ow0CxdsAdTl>&^}pTz7x-l(c~!;9HelXPaj=_~Sj7dbmFl#bb=FK!WFbY7 z;%7K+hC}|rj-j0OA*wJqZVbO->&YniJ8^xYk}{XQx+J93Gj5_LcE$b|!?BSJKoey-EQOrsK;!{A79bX~l@KqHWbBw=ejsc?;xu9$7= z5LpXjDpV0hXS`1AvU&!qkwou?UzmIeG7;}3>T>pfkG;NaLKT+JRDzmS25iUsf~Dt< zg1M3hlg$cCxGD!)oiPa?L}_9IzMT`=o{+Nbh&*gaZj^4nRy{AG#OR3sVpct7S#W4s zZXoGab3fQGJ+|g4;u^w)-ec@IRmQdOeC8g+B<{^13a%A;Vo^SWIs`Dhqh$co5z1tX{*4y zz7otE0k`hYo{ep#u(8iA+BVqKyF`Gn$CaA(c_EuV7j`5dt4U0TIbC_^t6ipTV5o{> z`1p;bPG4?7cYgAaJz2U1ZIVA)-6=|oL`OFGZ@_F@y8=;?0&a#v3xIvMWb#Bgo|yX= z;adFL;r+6?s7mV^W@xU^|6;M{!ba~W#@q7Vnyv4FZ01TDB`w>UY0f?#RHK1{6P2YY ze~Bd`##MRJaQ9E|XjXaJdGWJ;V<63Eg~MiWzF=|Q%ONQfwYyZAERIDW! zs>O%_tzWYOpDMWtFWu@VJe`it_L^^+O6pZ5#9I0Ux_b@i82nGoh!uNEcrP{|Ug{Bu zJBVBk@9T#f9hS7%_O{ucFc=SY_uYo_vVy8vN^}M5o3wRfXxqxZ*}kkbko6}tr4H{d zD9Q@Q(aGN!CSDg05hs+mg}aR++GF>RbIYb_lk#V;Av2~_3s{|`Kh0h8$R$58&xvOe z*Ab;^W6y*Sk^bVUY3+p<1!$-&H`4*XM5RjN3*>B+UHoxJ+)sn&@#}Cz(eDR1L4ukY^c10^=0s7H|1arb8}}^h}E$ zx~*g%j#|i~@phnB_?g*aV@m&aIw09wn!KK=dh<`T=s)Q6wcTXKbI~XjQa;j;2~U|< zb3BAx{~cZHE)@A2%xmOYR|vBX$V?^d^d)ogMX4^tQI#j!PxNAyMA38!@^_uEZy9{> zZn*r+Rf&4fh^FGjCDID)3=G`nRP43qItpX}=9w*9_m%Nal(;QzG-PNK z&G?m%hOwrgFD~g1EEcXmkOPfMsTHXi0Bh+`%z|&3Wqp8q+qR;`Hy9#fRshp64kB7ML|(OwHN7 zy$AHCTA}HTmy~$*b|48BYm(@fCZ1$>>b4RSj++LpCL8?-Zt>q(xT5h-->!&9*lH{T zKm!=47?DS*IALwHHRb={?PYqdJ?WkjSX7>tXwAnowy5A&sdt{OS8{@*Q^dvUAk zBNQLfZcw;N_b)Pc@)fQkGn{VXbv2$htiY1*Ih>rK>*AXz|DA&AsdzN;+|r8PZ?UZp z$0KxA9e7LoQWF@>`^w#UxIPU`4}+HwA5MncQ~Gs@bo=Bx;9Xs_`zxr-aUDXvyQS4s zk)OBlvqYbBd6&+s$|Ntrd3>R)=o81g7;8-eZ#oRy^%cKjyo=X}#d4foDJAV% zmQm71$W&l^58io~K_u&@VoThUZcU9IG6kar&trpI&S~y}EEOtKjhV*axf%~Yv50PpgR>a5@W`}pbunX@F@s!>4=yQtmns(l4 zCbF3Rm~CU4+iw}+O;PkcAiBFB%;meB`THGQpZOJRN$S6IRv-kqZpw}OhIVp~HACG* z9nfw$Rgw2-?Y4;k5W(d?Gnax36#O|o!J2DfgE9_8-u8HLujjcZNfhdDyvRA)tVT=r z0RB(wr5~HBxFcFEzbb|i6Sh#jx+fMT&r1MTY&IsC6K^9<@njWy$AP7uz>buoL{oX6 zTxo$0&o`d`d@$D$&~qyj9f?r#ETqNg)>C*x=7W z^$&YgFRCZC){OMyi8AjI%NY&=FRoY{R1tyoog8L@a{d0;kZiD5U(+sVElRd}P-yRU zdi?jOIJ6l!yNElD^s9fzOpw)E=L|oz#9irP3!%5t{xaTQpFCkH+=|?pd|0VooR~BJ zbai*UM2&m9b1f|ZCxQ6|EuPzb7B4p~vsLvF7)2U?y0m6?@@&_@*FQLE5t^>(Xr~m1 zGo&nk|2@zZJaTupo?>Xy%hg92nrz*_3%Sf@qu1o#Jk#3sQw4w}ITabal-z_`$wlCo7SU0ISRO3!uI|vOZHtaS%H~O<*;Yu(mUv->q&MK=;ygkT*L>)QV7gO za@MZeC53uSIeQgW8`3l_4FATVV=@uco%d9Yvx9IIyl*HL=;H)9paccH84QQ75;&cZ zgmWs{@fDp>VR&dc)aTU}0oZ?rp>wJ|Y-SP1P`GyC)r4DaCUY>n6vt*f%AvqW$Y!yk zuhk-=F$<$QuR(*-sDnc9MLft&6+=uft ze|>iH3%zs&3r(Ok*W3Q{{wiCNtH%faG`maF5u9Ft`4gGJRu$D(S)9$jJ4Q`|;r@kZ z6IU%p=hQ^|>SRtlncS!>b0Frjl-h2+SHr&s4ks=53c^8-nxWaMh=cp{{_UT_n=OmP z7BMNaob z(u@P^uJWbnXpug1`-Bn&8~}a`OWjqp4|gMm`>{StKno{gP(z!|qo!d+ZR3jnOH~+sgH4UhX8-yJ=4ZT5yaQXNaJxL%5<>q4dL`XvL=mqLWj%-99hP%W zQTtT>&?W4d+zr`mC#e4<@_uegNwZK=<{ z2iBgyT|ZiudH65kXB+qe!LlNKxb`pZ+}<8XJm*MMWazf>As@6TM!2PQ`GM6+R?6?# zHOLBZLR10m7#j#H1XLk((xvm3jwG!Q7U_33nDXG^m)goxMEa6$gTZwIjqb~u%{`+a zy{s04DkLkFWkCd|s0vAKb2W7t{gN8S`O*!5Pv6YEVIe!Q(e$8q3gYm8wLbE!z1;8j z9~lp&k9W;)lF_K%vLhiXtSNkA|M<8_0LW^@Xkl9Z8rqmn>IcRe^73;v1SY8HY+(lo z1_MNATI-0F)O?^XH&a7d%^crj&5D)O0G#a%Ejw!=1NCidEm%t+cN69IRN{@6#N(w&z;Ty+!kbpyzf<|5rIS99xNA{q}#%PvkAp zD2+69b1+dR+BCZ)ht87)%>{Zg2T6-C<)_IVa%UYfOn=2+^XTW{$}Ymn&Py|#1Gvh~ zZ@j@3E{*T;8Ms?rZ@QY1^INZ4R|bnKHjEJSI#~L6$sw_c>EcV2h7A&g7Z_2pAco6I znU?RV0*kmH5#Q-!mw?Xp$&+7R<#l>3uBmKvw+8z>sSKn`ZPIWIk$**$hf+giY0i=x zM$0RTYAWx+E|~a*?xn3Z5zafqJFDC$nd{qyg@6TEhXYJXKerAWKbkAMtCPH{T8;VI z>rikE-L~EnyW7u#JKeV@UmpHIyi#)zox2X%Fdc<#_wg+i%{En!RudKJ@dX$6#FDcS>(3< zl-LgeAFmjc^hX7C*SEa>*k#u0KRh?sFc&HcZ+=usGkd&FYUq&FOMzgNSmyqob|KV5 z~9lnfTA+V&YBtw+V4=DnUJ%rFR6nI! zWG!{?(?>_nq0idIztm|{eAG4gBNbRSp&`v5URGUMhIz_cT!EpNJ(*tzOE{C7+; zyRrAo`iux$Vi2vOGOc$t;b~GXa1Qaws+*~a%jh3q6$)B-wEdhszN2|!u>heE*g3LWRppvk zm4poK_+Uoc%@vxb>{dWu#ki;*>muo6$#mls+dX`QXMymC(OFeF)zcAc_RzN#^1`I_=eYna->SG3>^0!q^# z`#fxaF?a6T1Tm?u^B3R4wq7qGR}Q6_?Tal+nF^oRjm>A7)|NlOFD95-b)?H&i0EKx z8+9nqPBfvH*>3%PG&X%Mb3Y8~Q4l zpJ+hX>JM|HscW#Gj`0C!T}vWbkn~!O`J}~m98F`{pnS_?Tp(GilIw50Z-wOr~+)31M&Kt z5IB)7yKN&qhNf{}y}!C)o6x9dD9^Cz+1bSP9-r--_Ox6THhjjk`-F3)-#F#|I(P;b z5`Om%X&*hB*!tD%69mn?VK9C_&MTfUSodYG-y^G0SgWcqr)1%c$37K?-u##(uBVM2 ziVaFNh`m-f z&?lm*X1c4~8TyaBIP2!q$b#KGV@@6Mqvyv;;AWbqsWHSo07V)`&iY{cjJx%d>D6z~FWapr+U?s?fDx%2;Jk#nrT^96h+%Xk7wWAKnVG8U zfewGE!n2DcJSZRYJ9<Has0BAJ{T5o?d zet2PDrN%*r`xk?-i3g6NuoV)NTSD|PLnnRW=1TGQgp^Z*Mq=LJgn#*cNn~j=r7`j=h5yl5A6uQgT&z z8GR@=!`SQG4^6!z9z$rjLc75r8^f06uX0Z&mu=Q-iXD+O>^;gn&kQ3Dxq=a&yHA_G zbP{gLY#3H5Eh;zHt%F0HBVPXHhi|REjw@p!3i=M$#obzl(|&Jlia_V1e4LSsl5GLo zJ5IXGV#&7WV)i{meG<$LfK>8VEA%vqy*zOhiIFnkr{zY=n8sKR!E9|wk(E>=02S_6 zb8%0qkJ;-^Ojzt&GOat&ST(VTcHh5a?B88jgTS>a8HqYPMoh;0s+C2|^+X%!HAUzF zbUpNXsr_0C4uXl;5D+(F-|t(dY}OfPi$+p}911sX%$z)`{uJ6I$;E%~3C*7)ev-Ed zdxGZU*=Y2ZYdqsmpw$(0;u^EkEdSb#V5MV(A;~jETl+}EbfCz}b|rKG+EdJ%siVXcB@JyT?@eOs}mOK*zQ9@zLq= zap#mvb})S)k;!;T)#SB{(ZUT(EOKU=K?i*={Kb~-`6$LL#5pxTd zUBoY3l^^2$X{XgJUp}b4={~fKd%LG`XZ*J3!RXog0=0Si$)dWcATykP9pe{>mXwZG z70WRI!#HKb-s^xVCZbZ^vcg2E#eh%xiwtK7dKK%M(4(N;?+>8^GXEfy-k$!5k99I1 z0l0H46QTFVFqi7Bomwzkk0e?ozJ8tBT#b{AhCQ}04RU{j6oQG-Nno~gV~iFd`_s%x z11}pQqHknxDSZolYv?d{j?G8oO7ZsRAsy~=KGJVNdG`Q55u+cWUR%9)Gxi0k50KLVDF-zaun2xKlAT{dU@X$ zV{@^lmz}%~-9-9_C9NFrje?Xs0LRnJ*qYIj#Fy|AiekD96O zDd<@&G{q|va#a1Jt!`-Q7?aW0$|GnfI!X=r2oE`1u(HXy7MD3fCsG{-5+AsL9Dbj9 z*DPe?N?rqJ>+Yt~UNxByj-)-=!15{;6ACY$Yrh$)g|FS1yn521m0fp8(@H6{a{LxspcZn0U9r3P>XiU# zGZ0fR9RbtgoxykT{cg{9Vmt~7JkwE^<}Sh0>BbQ=GG2|qwOKlmH^CjF20 zcLe=fB&o4i4m#iD$lU$H67F$XmE=M&gpn2fZbkS>o!UF;-xXtd4=+L*piB#aIbkA& z3pWM?LaRRoASkl#Io#lV;%HQ9RnxSB0U{^U4fvx^jEooH{bVI>)z>jkY1!^NX*8sA z{tL{ic%IlmMb-mJkIDC8r(TYOp(t?6Z|JQ$-WzB1i-AgGGuj@r>kaZr>i1FmJ}kwd zBdtBlle;K>+Z^so_d=TSJBfsWbH#yk%e;3{Ie`&g#a)4nC*-cuD}nZ>=&qxpTD+H; z`8&U`$zE?KH)?Uu%Ri{ANQpC4j)(T6pWMq15C$j~;mzc7sXG^@+=3B1Pf{`vn7>|kMKYfj?o>1a-3<>+b({@;MCy<22>Ck+~!am9&A z=>ruAC~_o5QzT4sOxYwXC`=MDfA&E$DDp-%l8NPoQP3oa5Ck{jFO?_52yu#w?s_Z2 Skpf- diff --git a/apps/lend/public/safari-pinned-tab.svg b/apps/lend/public/safari-pinned-tab.svg deleted file mode 100644 index 3136ec8e3..000000000 --- a/apps/lend/public/safari-pinned-tab.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - -Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - - - diff --git a/apps/lend/sitemap.js b/apps/lend/sitemap.js deleted file mode 100644 index f4cbcb09e..000000000 --- a/apps/lend/sitemap.js +++ /dev/null @@ -1,11 +0,0 @@ -import { MAIN_ROUTE } from '@lend/constants' - -export default function sitemap() { - const BASE_URL = 'https://lend.curve.fi' - return Object.entries(MAIN_ROUTE).map(([_, route]) => ({ - url: `${BASE_URL}${route}`, - lastModified: new Date(), - changeFrequency: 'monthly', - priority: 0.8, - })) -} diff --git a/apps/lend/src/pages/index.tsx b/apps/lend/src/pages/index.tsx deleted file mode 100644 index d61c96767..000000000 --- a/apps/lend/src/pages/index.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { useEffect } from 'react' -import { getAppRoot } from '@ui-kit/shared/routes' - -export default function Index() { - useEffect(() => { - location.href = `${getAppRoot('lend')}${location.search}${location.hash}` - }, []) - return null -} diff --git a/apps/lend/tsconfig.json b/apps/lend/tsconfig.json deleted file mode 100644 index 0e2ef44c4..000000000 --- a/apps/lend/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "tsconfig/nextjs.json", - "compilerOptions": { - "baseUrl": "./src", - "paths": { - "@lend/*": ["*"], - "@ui": ["../../../packages/ui/src/index.ts"], - "@ui/*": ["../../../packages/ui/src/*"], - "@ui-kit/*": ["../../../packages/curve-ui-kit/src/*"], - "@external-rewards": ["../../../packages/external-rewards/src/index.ts"] - } - }, - "exclude": ["node_modules", "cypress"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "../../packages/curve-ui-kit/**/*.d.ts"] -} diff --git a/apps/loan/.browserslistrc b/apps/loan/.browserslistrc deleted file mode 100644 index 6dc1b32ad..000000000 --- a/apps/loan/.browserslistrc +++ /dev/null @@ -1,2 +0,0 @@ -last 2 chrome version -last 2 firefox version \ No newline at end of file diff --git a/apps/loan/.env.sample b/apps/loan/.env.sample deleted file mode 100644 index 22294fcb1..000000000 --- a/apps/loan/.env.sample +++ /dev/null @@ -1,6 +0,0 @@ -# -# crvusd dApp Environment Variables -# -# Networks -NEXT_PUBLIC_ETHEREUM_DEV_RPC_URL= -NEXT_PUBLIC_FRONTEND_DRPC_KEY= diff --git a/apps/loan/.gitignore b/apps/loan/.gitignore deleted file mode 100644 index 6d1e364e4..000000000 --- a/apps/loan/.gitignore +++ /dev/null @@ -1,50 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# IDE config -.idea/ -.vscode/ - -# husky -.husky - -# vercel -.vercel - -# lingui compiled translation files -src/locales - -# TypeChain generated files -src/sdk/types/ethers-contracts - -# crash report -report.*.json diff --git a/apps/loan/.huskyrc.json b/apps/loan/.huskyrc.json deleted file mode 100644 index 5a1b2a8cb..000000000 --- a/apps/loan/.huskyrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "lint-staged" - } -} diff --git a/apps/loan/.lintstagedrc.json b/apps/loan/.lintstagedrc.json deleted file mode 100644 index e903b669c..000000000 --- a/apps/loan/.lintstagedrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "*.{ts,tsx,js,jsx,json,css,md}": ["prettier --write"] -} diff --git a/apps/loan/.prettierignore b/apps/loan/.prettierignore deleted file mode 100644 index 825f81b1d..000000000 --- a/apps/loan/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -next.config.js diff --git a/apps/loan/lingui.config.ts b/apps/loan/lingui.config.ts deleted file mode 100644 index b6c0e4aa9..000000000 --- a/apps/loan/lingui.config.ts +++ /dev/null @@ -1 +0,0 @@ -export { config as default } from '../../lingui.config' diff --git a/apps/loan/next-env.d.ts b/apps/loan/next-env.d.ts deleted file mode 100644 index 4f11a03dc..000000000 --- a/apps/loan/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/loan/next.config.js b/apps/loan/next.config.js deleted file mode 100644 index b73545a38..000000000 --- a/apps/loan/next.config.js +++ /dev/null @@ -1,58 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfiguration = { - output: 'export', - compiler: { - styledComponents: true - }, - experimental: { - swcPlugins: [ - ['@lingui/swc-plugin', { - // Optional - // Unlike the JS version this option must be passed as object only. - // Docs https://lingui.dev/ref/conf#runtimeconfigmodule - "runtimeModules": { - "i18n": ["@lingui/core", "i18n"], - "trans": ["@lingui/react", "Trans"] - } - }], - ] - }, - images: { - remotePatterns: [ - { - protocol: 'https', - hostname: 'cdn.jsdelivr.net', - }, - ], - unoptimized: true, - }, - trailingSlash: true, - transpilePackages: ['curve-ui-kit'], - webpack(config) { - config.module.rules.push({ - test: /\.svg$/, - use: ['@svgr/webpack', 'url-loader'] - }) - - return config - }, - eslint: { - // Warning: This allows production builds to successfully complete even if - // your project has ESLint errors. - // ignoreDuringBuilds: true, - }, - typescript: { - // !! WARN !! - // Dangerously allow production builds to successfully complete even if - // your project has type errors. - // !! WARN !! - // ignoreBuildErrors: true, - }, -} - -const withBundleAnalyzer = require('@next/bundle-analyzer')({ - openAnalyzer: false, - enabled: process.env.ANALYZE === 'true' -}) - -module.exports = withBundleAnalyzer(nextConfiguration) diff --git a/apps/loan/package.json b/apps/loan/package.json deleted file mode 100644 index 55368be48..000000000 --- a/apps/loan/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "loan", - "version": "0.1.0", - "private": true, - "engines": { - "node": "20" - }, - "scripts": { - "dev": "yarn i18n:compile && next dev -p 3001", - "build": "yarn i18n:extract && yarn i18n:compile && next build", - "start": "next start", - "lint": "next lint", - "typecheck": "tsc --noEmit", - "commit": "commit", - "prepublishOnly": "pinst --disable", - "postpublish": "pinst --enable", - "i18n:extract": "lingui extract", - "i18n:compile": "lingui compile", - "analyze": "ANALYZE=true next build" - }, - "peerDependencies": { - "eslint-config-custom": "*", - "react": "*", - "react-dom": "*", - "tsconfig": "*", - "typescript": "*" - }, - "dependencies": { - "@curvefi/lending-api": "^2.4.0", - "@curvefi/stablecoin-api": "^1.5.8", - "@supercharge/promise-pool": "^2.3.2", - "@tanstack/react-table": "^8.20.6", - "bignumber.js": "^9.1.2", - "cross-fetch": "^3.1.5", - "curve-ui-kit": "*", - "ethers": "^6.13.4", - "focus-visible": "5.2.0", - "fuse.js": "^6.6.2", - "immer": "^9.0.12", - "intersection-observer": "^0.12.0", - "lodash": "4.17.21", - "memoizee": "^0.4.17", - "next": "^13.5.6", - "next-images": "^1.8.5", - "react": "*", - "react-aria": "3.22.0", - "react-dom": "*", - "react-is": "16.13.1", - "react-router-dom": "^6.3.0", - "react-stately": "3.18.0", - "recharts": "2.4.1", - "sharp": "^0.32.6", - "styled-components": "5.3.11", - "swr": "^1.3.0", - "ui": "*", - "zustand": "^4.5.5" - }, - "devDependencies": { - "@lingui/cli": "^4.6.0", - "@lingui/loader": "^4.6.0", - "@lingui/macro": "^4.6.0", - "@lingui/swc-plugin": "^4.0.4", - "@next/bundle-analyzer": "^13.5.6", - "@svgr/webpack": "^8.1.0", - "@types/lodash": "^4.14.182", - "@types/node": "17.0.24", - "@types/react": "*", - "@types/react-dom": "*", - "@types/styled-components": "5.1.14", - "eslint-config-custom": "*", - "pinst": "^2.1.4", - "prop-types": "^15.6.0", - "tsconfig": "*", - "typescript": "*", - "webpack": "^5.83.1" - }, - "resolutions": { - "styled-components": "^5" - } -} diff --git a/apps/loan/public/android-chrome-192x192.png b/apps/loan/public/android-chrome-192x192.png deleted file mode 100644 index f0df21c885cb5ab8e1be066e1c38147b8cf55be8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28014 zcmV)=K!m@EP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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ℑ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

LiR#J>Zr(qZ3IK5vW`R6830r~NqOfu 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 diff --git a/apps/loan/public/apple-touch-icon.png b/apps/loan/public/apple-touch-icon.png deleted file mode 100644 index 7d9762db86a735e3473c8eb74bbb02f42645f838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16657 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 p>f-3& - - - - - #ffffff - - - diff --git a/apps/loan/public/favicon-16x16.png b/apps/loan/public/favicon-16x16.png deleted file mode 100644 index 193be9f0444417d35d040bacc5e9083e032c1434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1438 zcmZ`(eKgf~82?F62`{@94U~Fz+598z58mBAQtz2*m0PP&o=%?;?S2;R&IL_)kU=Nmx%f zLa-)yP$h5xCM6C&}Y`Cv20c?y+CU!nTTz)Go5w^GH2bHEB>156ei!F zIp?ZtSTxmPrFzDj7_}Se6l(5>m?{_T^^djfwwg|>si!96f8mvu*R5JH*=VckG#VM@ z45`sUC?S@lanGo6?oPx(H@`(Xw}D=05mUL?uJfE@{8{#u}!4z^R5R4Oac3_rZGJ#h$7?Dd` z_EBmn#n)w?GoNc_ z-=)QW44aMj8x0N3>>n~8yCk4#+VSoQ|-C$$1fprHna;G@j zK~StNbe_p^f8A-#-K(BTowfaDmPt~BJ^K{Ei4XAc>P=0oozDh_3cnz4!&gR@<_?0G zO2&*W3;eu1!sa}X#KoDL&NeG6I#eu+=W%!zRu50TJQU`dY2a-qa;eO@=)WOrjZCyP zxcbb|I^N1<${$1pd4ZG$mL%t43j>`5) z49{3Ak8P~sEC1Y`SF&(zxm${Qe|fF!etGikICnXdyQje7lgPSFQ~9N5MNz_t>d5-d zy1fUExyT>ZrDzTw7nyX|ZykA9FQ;9~eKS9F&1%1W`1(C&GOy&v;1jOdudgXjmedNA zXCLn=D07TWd;9mqm}<2DW&H1|`mAB~49fYXGH%|5*lnvlRkhL#z6$`MM?yz1iQ)GzKrSM3Q$4hPe zQpAbUP^mZ}Gp$9+{%8o#3X4#LiZg6d)8(?HO;Q_0W~$UCDODi>wpF|sGcigN+1t0S zZEN@I4~4$1z)>PFvo#ASG1oV<@yc0#GeO_BHq552r?a`Ky=iWfVOx%GrN1KvElm|; Sp3bFg3;1~ldsTbJ<^BV_*>*Vq diff --git a/apps/loan/public/favicon-32x32.png b/apps/loan/public/favicon-32x32.png deleted file mode 100644 index 0bd32716ee188f047811e151c8698d42b32e54ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2383 zcmZ`*dpOgJAO2z&(J0` zvEq<}%ZQ2DJOI!YoAWjR(7=}5qk?~k{`PL?0U$;j09eTY@XrCoS^|Iw3;-9Ej=2lorQPKbtt$;}mOkJZ}BXe-N=KEJBjd`5=)Hq*j9( zPfJwL@@s~?``|fwkKJ_@avdS1 zAT{V}VkD?la>p8|g#<*9s(9v#Q`ICUYg5`hwlw6jpOAf76z1x*_6fEVDBg;y#M)$v z_-C8?%5WWdvzfY4Q&Lg=&lw81A&c9crlK9%zHT#n9*pT@mi3S7Kd7f~bc34EybXBW~GpL&_KCcH#j{nb^iL@qBN=$DQ42f58J*1X6G1WI_`6nn%!z z*aXWf)lSrWCKsu)7FAqwg&uwHRmmf^!s{t@YpS(s=j_E*M*C2-;m*@I@0gw4bA4A7cPn|Jpe;>)0;zWMBuk9BBV&4c{ts8^Kc}u1j+wJi zqGV`W9f&?4QyA_taEDsR&n1_u_AC<5Z6FWn4B?d4N1R!-8SH6?EW@{HG18FsdfE!z zS>&Qbv}m~3DEik$EyoEa6yS1d8nY)8%ElI`6MG|j1tfkWn2ul*`8HxDDot1_;%s2X zQpM9>q4ux}?-m~O5XaGwNEsfmg4%kwi5Y44N9C5VE~**7&Awxh=$ENnVTPBh(SC>J zYO8FYfB(~jT->zE;3JPHB~2t41Yc-J*6Xi{W~1@CYQizG zOumFl+x}yeF0VmWRW|mlrOxAJ=_-#jkY}PvMNqBENg*t{wYgf|>vOZfJwmT(Z@nWb zEQatR3D}cix-EE-kfIz&_}U*_1a!PX>CzD&1x&98c>3kqlDa{H8}e)dr+^&Pp-Ic z#=-DCNPpfLvt+z~F=9HoiJ4E{o#Ypg=d2?W{)jDX|3tOqab{(7)B3(HU3kU|h{#(H zZthym^0?9YrI;l9L5+;>{1PR~@D(XAm=)!K)m1zCy-v9hpSb+a4DLt6uvH{nuH&eL z-*h0(BRvJD>0=8@-r1~d94IIGpQ|PW*7>wljEyGGzhfpF`s#^D1worM`i;}~J8bnA z2{GC;9E-P|JC?n=tF#u)aMjc??Hqa8+3XpaIryyHoN;+qw&NiT{QAfx;@}qwNx}HZ z`@qTmJvCbu*+K0*Y@w@W*HL-w@M~iMg^XV`&%{~kr%#}(-0@>t@)=5OP#U7R(vmIS zVx{g%wazM`_4v)x*wn(+TCK zSc@%9Lo^&s*l3&VGDI5^#-Z*?a7?*l*@@4Y4bJ~AwidQO{?=<}krq8a1{O%UE8TnC z7bzaP(!gB5;(sYAVy?YM{$>U(Qf@BvPLCFMm?7dy!&{fBkc(=T*Wc$)}pJ`i)|_r-WUfRpNfWDuBfV&v#*} zEcuc;6!%r&Z{M#+x`yI+JAOM;oBnYB?sf(Un&pxD@sWmhbQ15~QX`jw4%ayPO=|t| z_}N(7oy>D72`>VlST1Fb4Sc?^P&T6`0Rv zju{9qIhH!v>od`YIUs#Z4&DOixoo_5AA4oKI40kgVeqVQf09o!2+;UTPls0aC-=yA z%GxXA*?iC^hPe_&oE)z<$iJ=NC9SYnt}#(0AClTVUUAH1xX(}@y2H54ewT$wGqhBQ}p@hRK>3(VyrvJLMp+(Ou` zDL+f(K24f)KuqIC=3PD-d^-(z>q6^u1U! zbkOu#Oah4+KxNV_{KIJn02pD6jPx;P`bNg?Mi>hdQwu{wT@1zogOQw=P5K|hwa|dz z!07*Ph)KJ6=D?u*BY_wi$h<)frvWwrp?)-^!!_y^nj4K85FOS}`|*N!#kiB0Zqyq{ zdU$AH@KqX;8BM1lgXv6v0EjA?|9V(F%oBwga2XtOSabu#G$hgfl5!eyPWKUFa!5SO vgcl&D(ddpG9Dmo>J=Cq*4IO0Ja~#pYvLc-M^{i>$K?LAHaK^tl>znvrcjhH& diff --git a/apps/loan/public/favicon.ico b/apps/loan/public/favicon.ico deleted file mode 100644 index ce502d7db701a9dd061df52512710666f9e5ccff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34494 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 XMl{yo{bC6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/loan/public/manifest.json b/apps/loan/public/manifest.json deleted file mode 100644 index f81487cbc..000000000 --- a/apps/loan/public/manifest.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "short_name": "Curve", - "name": "Curve", - "description": "Decentralized exchange liquidity pool designed for extremely efficient stablecoin trading and low-risk income for liquidity providers", - "iconPath": "logo-square.svg", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "android-chrome-512x512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/apps/loan/public/mstile-150x150.png b/apps/loan/public/mstile-150x150.png deleted file mode 100644 index 06a5e1831a5cb9716f896e3a64aab4cab1d7408e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16549 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 Skpf- diff --git a/apps/loan/public/safari-pinned-tab.svg b/apps/loan/public/safari-pinned-tab.svg deleted file mode 100644 index 3136ec8e3..000000000 --- a/apps/loan/public/safari-pinned-tab.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - -Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - - - diff --git a/apps/loan/sitemap.js b/apps/loan/sitemap.js deleted file mode 100644 index c87be615f..000000000 --- a/apps/loan/sitemap.js +++ /dev/null @@ -1,11 +0,0 @@ -import { MAIN_ROUTE } from '@loan/constants' - -export default function sitemap() { - const BASE_URL = 'https://crvusd.curve.fi' - return Object.entries(MAIN_ROUTE).map(([_, route]) => ({ - url: `${BASE_URL}${route}`, - lastModified: new Date(), - changeFrequency: 'monthly', - priority: 0.8, - })) -} diff --git a/apps/loan/src/pages/index.tsx b/apps/loan/src/pages/index.tsx deleted file mode 100644 index 2340af240..000000000 --- a/apps/loan/src/pages/index.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { useEffect } from 'react' -import { getAppRoot } from '@ui-kit/shared/routes' - -export default function Index() { - useEffect(() => { - location.href = `${getAppRoot('crvusd')}${location.search}${location.hash}` - }, []) - return null -} diff --git a/apps/loan/tsconfig.json b/apps/loan/tsconfig.json deleted file mode 100644 index f6eff0a13..000000000 --- a/apps/loan/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "tsconfig/nextjs.json", - "compilerOptions": { - "baseUrl": "./src", - "paths": { - "@loan/*": ["*"], - "@ui": ["../../../packages/ui/src/index.ts"], - "@ui/*": ["../../../packages/ui/src/*"], - "@ui-kit/*": ["../../../packages/curve-ui-kit/src/*"], - "@external-rewards": ["../../../packages/external-rewards/src/index.ts"] - } - }, - "exclude": ["node_modules", "cypress"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "../../packages/curve-ui-kit/**/*.d.ts"] -} From 535887442f122b151df6d59faa293b111a83a81f Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Fri, 24 Jan 2025 11:34:57 +0100 Subject: [PATCH 2/5] fix: lock file --- yarn.lock | 410 ++---------------------------------------------------- 1 file changed, 12 insertions(+), 398 deletions(-) diff --git a/yarn.lock b/yarn.lock index a8fbadf04..ccf914b7a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3328,19 +3328,6 @@ __metadata: languageName: node linkType: hard -"@curvefi/api@npm:^2.65.28": - version: 2.65.28 - resolution: "@curvefi/api@npm:2.65.28" - dependencies: - "@curvefi/ethcall": "npm:6.0.7" - axios: "npm:^0.21.1" - bignumber.js: "npm:^9.0.1" - ethers: "npm:^6.11.0" - memoizee: "npm:^0.4.15" - checksum: 10c0/588ed69b6b100f4ee4b4db2d9f05c9bb98bac1f77814d4ae4e047b9191bad6a662f3a36cee4a1c93a9ddd881fcdd1778b5429e8737c2f0fd7a71e7c2d74c6829 - languageName: node - linkType: hard - "@curvefi/api@npm:^2.65.29": version: 2.65.29 resolution: "@curvefi/api@npm:2.65.29" @@ -3365,19 +3352,6 @@ __metadata: languageName: node linkType: hard -"@curvefi/lending-api@npm:^2.4.0": - version: 2.4.0 - resolution: "@curvefi/lending-api@npm:2.4.0" - dependencies: - axios: "npm:^0.21.1" - bignumber.js: "npm:^9.0.1" - ethcall: "npm:^6.0.2" - ethers: "npm:^6.10.0" - memoizee: "npm:^0.4.15" - checksum: 10c0/5cfb6b6c0043dc0d6e37cadbb0f3d39b4bdff2464a8c4e28c514b2c5f52caf5c55fb3beed570601825fd3b0def78ff6b534f720b3700e4f863fd3e998eff67ea - languageName: node - linkType: hard - "@curvefi/lending-api@npm:^2.4.1": version: 2.4.1 resolution: "@curvefi/lending-api@npm:2.4.1" @@ -12768,13 +12742,6 @@ __metadata: languageName: node linkType: hard -"arg@npm:^5.0.2": - version: 5.0.2 - resolution: "arg@npm:5.0.2" - checksum: 10c0/ccaf86f4e05d342af6666c569f844bec426595c567d32a8289715087825c2ca7edd8a3d204e4d2fb2aa4602e09a57d0c13ea8c9eea75aac3dbb4af5514e6800e - languageName: node - linkType: hard - "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -13112,16 +13079,6 @@ __metadata: languageName: node linkType: hard -"axios@npm:^0.27.2": - version: 0.27.2 - resolution: "axios@npm:0.27.2" - dependencies: - follow-redirects: "npm:^1.14.9" - form-data: "npm:^4.0.0" - checksum: 10c0/76d673d2a90629944b44d6f345f01e58e9174690f635115d5ffd4aca495d99bcd8f95c590d5ccb473513f5ebc1d1a6e8934580d0c57cdd0498c3a101313ef771 - languageName: node - linkType: hard - "axios@npm:^1.7.7": version: 1.7.7 resolution: "axios@npm:1.7.7" @@ -13455,7 +13412,7 @@ __metadata: languageName: node linkType: hard -"bluebird@npm:3.7.2, bluebird@npm:^3.7.2": +"bluebird@npm:^3.7.2": version: 3.7.2 resolution: "bluebird@npm:3.7.2" checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2 @@ -14113,7 +14070,7 @@ __metadata: languageName: node linkType: hard -"check-more-types@npm:2.24.0, check-more-types@npm:^2.24.0": +"check-more-types@npm:^2.24.0": version: 2.24.0 resolution: "check-more-types@npm:2.24.0" checksum: 10c0/93fda2c32eb5f6cd1161a84a2f4107c0e00b40a851748516791dd9a0992b91bdf504e3bf6bf7673ce603ae620042e11ed4084d16d6d92b36818abc9c2e725520 @@ -14423,7 +14380,7 @@ __metadata: languageName: node linkType: hard -"clsx@npm:^2.0.0, clsx@npm:^2.1.1": +"clsx@npm:^2.1.1": version: 2.1.1 resolution: "clsx@npm:2.1.1" checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839 @@ -15368,66 +15325,6 @@ __metadata: languageName: node linkType: hard -"dao@workspace:apps/dao": - version: 0.0.0-use.local - resolution: "dao@workspace:apps/dao" - dependencies: - "@curvefi/api": "npm:^2.65.28" - "@hookform/error-message": "npm:^2.0.1" - "@hookform/resolvers": "npm:^3.9.0" - "@lingui/cli": "npm:^4.6.0" - "@lingui/loader": "npm:^4.6.0" - "@lingui/macro": "npm:^4.6.0" - "@lingui/swc-plugin": "npm:^4.0.4" - "@next/bundle-analyzer": "npm:^13.5.6" - "@supercharge/promise-pool": "npm:^2.3.2" - "@svgr/webpack": "npm:^8.1.0" - "@types/lodash": "npm:^4.14.182" - "@types/node": "npm:17.0.24" - "@types/react": "npm:*" - "@types/react-dom": "npm:*" - "@types/styled-components": "npm:5.1.14" - "@types/validator": "npm:^13.12.1" - bignumber.js: "npm:^9.1.2" - curve-ui-kit: "npm:*" - eslint-config-custom: "npm:*" - ethers: "npm:^6.13.4" - focus-visible: "npm:5.2.0" - fuse.js: "npm:^6.6.2" - immer: "npm:^9.0.12" - intersection-observer: "npm:^0.12.0" - lightweight-charts: "npm:4.1.2" - lodash: "npm:4.17.21" - memoizee: "npm:^0.4.17" - next: "npm:^13.5.6" - next-images: "npm:^1.8.5" - pinst: "npm:^2.1.4" - react: "npm:*" - react-aria: "npm:3.22.0" - react-dom: "npm:*" - react-hook-form: "npm:^7.53.0" - react-is: "npm:16.13.1" - react-router-dom: "npm:^6.3.0" - react-stately: "npm:3.18.0" - recharts: "npm:^2.12.6" - sharp: "npm:^0.32.6" - start-server-and-test: "npm:2.0.0" - styled-components: "npm:5.3.11" - swr: "npm:^2.2.2" - tsconfig: "npm:*" - typescript: "npm:*" - ui: "npm:*" - webpack: "npm:^5.83.1" - zustand: "npm:^4.5.5" - peerDependencies: - eslint-config-custom: "*" - react: "*" - react-dom: "*" - tsconfig: "*" - typescript: "*" - languageName: unknown - linkType: soft - "dargs@npm:^8.0.0": version: 8.1.0 resolution: "dargs@npm:8.1.0" @@ -16021,7 +15918,7 @@ __metadata: languageName: node linkType: hard -"duplexer@npm:^0.1.2, duplexer@npm:~0.1.1": +"duplexer@npm:^0.1.2": version: 0.1.2 resolution: "duplexer@npm:0.1.2" checksum: 10c0/c57bcd4bdf7e623abab2df43a7b5b23d18152154529d166c1e0da6bee341d84c432d157d7e97b32fecb1bf3a8b8857dd85ed81a915789f550637ed25b8e64fc2 @@ -17622,7 +17519,7 @@ __metadata: languageName: node linkType: hard -"ethers@npm:^6.11.0, ethers@npm:^6.13.4": +"ethers@npm:^6.13.4": version: 6.13.4 resolution: "ethers@npm:6.13.4" dependencies: @@ -17657,21 +17554,6 @@ __metadata: languageName: node linkType: hard -"event-stream@npm:=3.3.4": - version: 3.3.4 - resolution: "event-stream@npm:3.3.4" - dependencies: - duplexer: "npm:~0.1.1" - from: "npm:~0" - map-stream: "npm:~0.1.0" - pause-stream: "npm:0.0.11" - split: "npm:0.3" - stream-combiner: "npm:~0.0.4" - through: "npm:~2.3.1" - checksum: 10c0/c3ec4e1efc27ab3e73a98923f0a2fa9a19051b87068fea2f3d53d2e4e8c5cfdadf8c8a115b17f3d90b16a46432d396bad91b6e8d0cceb3e449be717a03b75209 - languageName: node - linkType: hard - "event-target-shim@npm:^5.0.0": version: 5.0.1 resolution: "event-target-shim@npm:5.0.1" @@ -17742,7 +17624,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:5.1.1, execa@npm:^5.1.1": +"execa@npm:^5.1.1": version: 5.1.1 resolution: "execa@npm:5.1.1" dependencies: @@ -17964,13 +17846,6 @@ __metadata: languageName: node linkType: hard -"fast-equals@npm:^5.0.1": - version: 5.0.1 - resolution: "fast-equals@npm:5.0.1" - checksum: 10c0/d7077b8b681036c2840ed9860a3048e44fc268fad2b525b8f25b43458be0c8ad976152eb4b475de9617170423c5b802121ebb61ed6641c3ac035fadaf805c8c0 - languageName: node - linkType: hard - "fast-fifo@npm:^1.1.0, fast-fifo@npm:^1.2.0": version: 1.3.2 resolution: "fast-fifo@npm:1.3.2" @@ -18302,16 +18177,6 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.14.9": - version: 1.15.9 - resolution: "follow-redirects@npm:1.15.9" - peerDependenciesMeta: - debug: - optional: true - checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f - languageName: node - linkType: hard - "for-each@npm:^0.3.3": version: 0.3.3 resolution: "for-each@npm:0.3.3" @@ -18418,13 +18283,6 @@ __metadata: languageName: node linkType: hard -"from@npm:~0": - version: 0.1.7 - resolution: "from@npm:0.1.7" - checksum: 10c0/3aab5aea8fe8e1f12a5dee7f390d46a93431ce691b6222dcd5701c5d34378e51ca59b44967da1105a0f90fcdf5d7629d963d51e7ccd79827d19693bdcfb688d4 - languageName: node - linkType: hard - "fromentries@npm:^1.3.2": version: 1.3.2 resolution: "fromentries@npm:1.3.2" @@ -19663,13 +19521,6 @@ __metadata: languageName: node linkType: hard -"intersection-observer@npm:^0.12.0": - version: 0.12.0 - resolution: "intersection-observer@npm:0.12.0" - checksum: 10c0/e23d2d3c1a3eddfda9ff1b4c249976fb871dac0b4c3d7d92a680f51982bafdd6ec7b25f05397c0618b48310f8604beba323def131ca76ac9014b2010f4f3c784 - languageName: node - linkType: hard - "intl-messageformat@npm:^10.1.0": version: 10.2.1 resolution: "intl-messageformat@npm:10.2.1" @@ -20405,7 +20256,7 @@ __metadata: languageName: node linkType: hard -"joi@npm:^17.13.3, joi@npm:^17.7.0": +"joi@npm:^17.13.3": version: 17.13.3 resolution: "joi@npm:17.13.3" dependencies: @@ -20719,70 +20570,13 @@ __metadata: languageName: node linkType: hard -"lazy-ass@npm:1.6.0, lazy-ass@npm:^1.6.0": +"lazy-ass@npm:^1.6.0": version: 1.6.0 resolution: "lazy-ass@npm:1.6.0" checksum: 10c0/4af6cb9a333fbc811268c745f9173fba0f99ecb817cc9c0fae5dbf986b797b730ff525504128f6623b91aba32b02124553a34b0d14de3762b637b74d7233f3bd languageName: node linkType: hard -"lend@workspace:apps/lend": - version: 0.0.0-use.local - resolution: "lend@workspace:apps/lend" - dependencies: - "@curvefi/lending-api": "npm:^2.4.0" - "@lingui/cli": "npm:^4.6.0" - "@lingui/loader": "npm:^4.6.0" - "@lingui/macro": "npm:^4.6.0" - "@lingui/swc-plugin": "npm:^4.0.4" - "@next/bundle-analyzer": "npm:^13.5.6" - "@supercharge/promise-pool": "npm:^2.3.2" - "@svgr/webpack": "npm:^8.1.0" - "@types/lodash": "npm:^4.14.182" - "@types/node": "npm:17.0.24" - "@types/react": "npm:*" - "@types/react-dom": "npm:*" - "@types/styled-components": "npm:5.1.14" - bignumber.js: "npm:^9.1.2" - cross-fetch: "npm:^3.1.5" - curve-ui-kit: "npm:*" - eslint-config-custom: "npm:*" - ethers: "npm:^6.13.4" - external-rewards: "npm:*" - focus-visible: "npm:5.2.0" - fuse.js: "npm:^6.6.2" - immer: "npm:^9.0.12" - intersection-observer: "npm:^0.12.0" - lodash: "npm:4.17.21" - memoizee: "npm:^0.4.17" - next: "npm:^13.5.6" - next-images: "npm:^1.8.5" - pinst: "npm:^2.1.4" - prop-types: "npm:^15.6.0" - react: "npm:*" - react-aria: "npm:3.22.0" - react-dom: "npm:*" - react-is: "npm:16.13.1" - react-router-dom: "npm:^6.3.0" - react-stately: "npm:3.18.0" - recharts: "npm:2.4.1" - sharp: "npm:^0.32.6" - styled-components: "npm:5.3.11" - swr: "npm:^1.3.0" - tsconfig: "npm:*" - typescript: "npm:*" - ui: "npm:*" - webpack: "npm:^5.83.1" - zustand: "npm:^4.5.5" - peerDependencies: - eslint-config-custom: "*" - react: "*" - react-dom: "*" - tsconfig: "*" - typescript: "*" - languageName: unknown - linkType: soft - "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -20993,64 +20787,6 @@ __metadata: languageName: node linkType: hard -"loan@workspace:apps/loan": - version: 0.0.0-use.local - resolution: "loan@workspace:apps/loan" - dependencies: - "@curvefi/lending-api": "npm:^2.4.0" - "@curvefi/stablecoin-api": "npm:^1.5.8" - "@lingui/cli": "npm:^4.6.0" - "@lingui/loader": "npm:^4.6.0" - "@lingui/macro": "npm:^4.6.0" - "@lingui/swc-plugin": "npm:^4.0.4" - "@next/bundle-analyzer": "npm:^13.5.6" - "@supercharge/promise-pool": "npm:^2.3.2" - "@svgr/webpack": "npm:^8.1.0" - "@tanstack/react-table": "npm:^8.20.6" - "@types/lodash": "npm:^4.14.182" - "@types/node": "npm:17.0.24" - "@types/react": "npm:*" - "@types/react-dom": "npm:*" - "@types/styled-components": "npm:5.1.14" - bignumber.js: "npm:^9.1.2" - cross-fetch: "npm:^3.1.5" - curve-ui-kit: "npm:*" - eslint-config-custom: "npm:*" - ethers: "npm:^6.13.4" - focus-visible: "npm:5.2.0" - fuse.js: "npm:^6.6.2" - immer: "npm:^9.0.12" - intersection-observer: "npm:^0.12.0" - lodash: "npm:4.17.21" - memoizee: "npm:^0.4.17" - next: "npm:^13.5.6" - next-images: "npm:^1.8.5" - pinst: "npm:^2.1.4" - prop-types: "npm:^15.6.0" - react: "npm:*" - react-aria: "npm:3.22.0" - react-dom: "npm:*" - react-is: "npm:16.13.1" - react-router-dom: "npm:^6.3.0" - react-stately: "npm:3.18.0" - recharts: "npm:2.4.1" - sharp: "npm:^0.32.6" - styled-components: "npm:5.3.11" - swr: "npm:^1.3.0" - tsconfig: "npm:*" - typescript: "npm:*" - ui: "npm:*" - webpack: "npm:^5.83.1" - zustand: "npm:^4.5.5" - peerDependencies: - eslint-config-custom: "*" - react: "*" - react-dom: "*" - tsconfig: "*" - typescript: "*" - languageName: unknown - linkType: soft - "locate-path@npm:^2.0.0": version: 2.0.0 resolution: "locate-path@npm:2.0.0" @@ -21531,13 +21267,6 @@ __metadata: languageName: node linkType: hard -"map-stream@npm:~0.1.0": - version: 0.1.0 - resolution: "map-stream@npm:0.1.0" - checksum: 10c0/7dd6debe511c1b55d9da75e1efa65a28b1252a2d8357938d2e49b412713c478efbaefb0cdf0ee0533540c3bf733e8f9f71e1a15aa0fe74bf71b64e75bf1576bd - languageName: node - linkType: hard - "markdown-to-jsx@npm:^7.4.5": version: 7.5.0 resolution: "markdown-to-jsx@npm:7.5.0" @@ -21867,7 +21596,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6, minimist@npm:^1.2.7, minimist@npm:^1.2.8": +"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -23077,15 +22806,6 @@ __metadata: languageName: node linkType: hard -"pause-stream@npm:0.0.11": - version: 0.0.11 - resolution: "pause-stream@npm:0.0.11" - dependencies: - through: "npm:~2.3" - checksum: 10c0/86f12c64cdaaa8e45ebaca4e39a478e1442db8b4beabc280b545bfaf79c0e2f33c51efb554aace5c069cc441c7b924ba484837b345eaa4ba6fc940d62f826802 - languageName: node - linkType: hard - "pbkdf2@npm:^3.0.17, pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.1.2": version: 3.1.2 resolution: "pbkdf2@npm:3.1.2" @@ -23568,7 +23288,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": +"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -23630,17 +23350,6 @@ __metadata: languageName: node linkType: hard -"ps-tree@npm:1.2.0": - version: 1.2.0 - resolution: "ps-tree@npm:1.2.0" - dependencies: - event-stream: "npm:=3.3.4" - bin: - ps-tree: ./bin/ps-tree.js - checksum: 10c0/9d1c159e0890db5aa05f84d125193c2190a6c4ecd457596fd25e7611f8f747292a846459dcc0244e27d45529d4cea6d1010c3a2a087fad02624d12fdb7d97c22 - languageName: node - linkType: hard - "pseudolocale@npm:^2.0.0": version: 2.0.0 resolution: "pseudolocale@npm:2.0.0" @@ -24136,20 +23845,6 @@ __metadata: languageName: node linkType: hard -"react-smooth@npm:^4.0.0": - version: 4.0.1 - resolution: "react-smooth@npm:4.0.1" - dependencies: - fast-equals: "npm:^5.0.1" - prop-types: "npm:^15.8.1" - react-transition-group: "npm:^4.4.5" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/5c19a2c147798c3de1329d442b1a371139c01113cc108c38c201b63502c329f943ede505c44089d26a6563eaa72a67b845d538d956f34a389b37fd3961308834 - languageName: node - linkType: hard - "react-stately@npm:3.18.0": version: 3.18.0 resolution: "react-stately@npm:3.18.0" @@ -24347,25 +24042,6 @@ __metadata: languageName: node linkType: hard -"recharts@npm:^2.12.6": - version: 2.13.3 - resolution: "recharts@npm:2.13.3" - dependencies: - clsx: "npm:^2.0.0" - eventemitter3: "npm:^4.0.1" - lodash: "npm:^4.17.21" - react-is: "npm:^18.3.1" - react-smooth: "npm:^4.0.0" - recharts-scale: "npm:^0.4.4" - tiny-invariant: "npm:^1.3.1" - victory-vendor: "npm:^36.6.8" - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/67c516cd142da0e5968cf9b723c1bc08c2324ff4c41952d623dfce06e8c13751e1ef885b2e39aaeb5e32595566c8d91633328850adee70ad53bc8685adff456d - languageName: node - linkType: hard - "redent@npm:^3.0.0": version: 3.0.0 resolution: "redent@npm:3.0.0" @@ -24994,7 +24670,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.5.1, rxjs@npm:^7.5.2, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0, rxjs@npm:^7.8.1": +"rxjs@npm:^7.5.1, rxjs@npm:^7.5.2, rxjs@npm:^7.5.5, rxjs@npm:^7.8.1": version: 7.8.1 resolution: "rxjs@npm:7.8.1" dependencies: @@ -25770,15 +25446,6 @@ __metadata: languageName: node linkType: hard -"split@npm:0.3": - version: 0.3.3 - resolution: "split@npm:0.3.3" - dependencies: - through: "npm:2" - checksum: 10c0/88c09b1b4de84953bf5d6c153123a1fbb20addfea9381f70d27b4eb6b2bfbadf25d313f8f5d3fd727d5679b97bfe54da04766b91010f131635bf49e51d5db3fc - languageName: node - linkType: hard - "sprintf-js@npm:^1.1.3": version: 1.1.3 resolution: "sprintf-js@npm:1.1.3" @@ -25839,26 +25506,6 @@ __metadata: languageName: node linkType: hard -"start-server-and-test@npm:2.0.0": - version: 2.0.0 - resolution: "start-server-and-test@npm:2.0.0" - dependencies: - arg: "npm:^5.0.2" - bluebird: "npm:3.7.2" - check-more-types: "npm:2.24.0" - debug: "npm:4.3.4" - execa: "npm:5.1.1" - lazy-ass: "npm:1.6.0" - ps-tree: "npm:1.2.0" - wait-on: "npm:7.0.1" - bin: - server-test: src/bin/start.js - start-server-and-test: src/bin/start.js - start-test: src/bin/start.js - checksum: 10c0/b8eba7e98bced3a896040cf1d1372526aba0d65cf6ee3a22aa64a2c74ece01b90489e4e670070c47e4527589af17541c03f50c3b3df2b714605f0302f9008e6b - languageName: node - linkType: hard - "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -25896,15 +25543,6 @@ __metadata: languageName: node linkType: hard -"stream-combiner@npm:~0.0.4": - version: 0.0.4 - resolution: "stream-combiner@npm:0.0.4" - dependencies: - duplexer: "npm:~0.1.1" - checksum: 10c0/8075a94c0eb0f20450a8236cb99d4ce3ea6e6a4b36d8baa7440b1a08cde6ffd227debadffaecd80993bd334282875d0e927ab5b88484625e01970dd251004ff5 - languageName: node - linkType: hard - "stream-http@npm:^3.2.0": version: 3.2.0 resolution: "stream-http@npm:3.2.0" @@ -26372,15 +26010,6 @@ __metadata: languageName: node linkType: hard -"swr@npm:^1.3.0": - version: 1.3.0 - resolution: "swr@npm:1.3.0" - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/a02b3dd621e5117320ad45788fb407f60301985edb5fa4197f1b95e28cbe8b3bd093e3cb9a6002102f8c12b40a85941ee525f2b47273366870435aecd61d0e7b - languageName: node - linkType: hard - "swr@npm:^2.2.2": version: 2.2.2 resolution: "swr@npm:2.2.2" @@ -26595,7 +26224,7 @@ __metadata: languageName: node linkType: hard -"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.6, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.1": +"through@npm:>=2.2.7 <3, through@npm:^2.3.6, through@npm:^2.3.8": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc @@ -27873,21 +27502,6 @@ __metadata: languageName: node linkType: hard -"wait-on@npm:7.0.1": - version: 7.0.1 - resolution: "wait-on@npm:7.0.1" - dependencies: - axios: "npm:^0.27.2" - joi: "npm:^17.7.0" - lodash: "npm:^4.17.21" - minimist: "npm:^1.2.7" - rxjs: "npm:^7.8.0" - bin: - wait-on: bin/wait-on - checksum: 10c0/2a9c56d26dac573e6bfd36e85d99f072021c23dc2c0faab900a411460b58e16982b96b018d9168c366040f56196314fa46f3d79ef19e3dc38f55824d5035f2ec - languageName: node - linkType: hard - "wait-on@npm:^8.0.1": version: 8.0.1 resolution: "wait-on@npm:8.0.1" From 5e7929c660660f1e54c03648b0d2abf7977f3341 Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Fri, 24 Jan 2025 13:47:16 +0100 Subject: [PATCH 3/5] fix: remove intersection-observer --- apps/main/src/pages/crvusd.tsx | 1 - apps/main/src/pages/dao.tsx | 1 - apps/main/src/pages/dex.tsx | 1 - apps/main/src/pages/lend.tsx | 1 - 4 files changed, 4 deletions(-) diff --git a/apps/main/src/pages/crvusd.tsx b/apps/main/src/pages/crvusd.tsx index 292ed6b8e..712203b36 100644 --- a/apps/main/src/pages/crvusd.tsx +++ b/apps/main/src/pages/crvusd.tsx @@ -3,7 +3,6 @@ import dynamic from 'next/dynamic' import { Navigate, Route, Routes } from 'react-router' import { REFRESH_INTERVAL, ROUTE } from '@/loan/constants' import { i18n } from '@lingui/core' -import 'intersection-observer' import 'focus-visible' import { I18nProvider } from '@lingui/react' import { OverlayProvider } from '@react-aria/overlays' diff --git a/apps/main/src/pages/dao.tsx b/apps/main/src/pages/dao.tsx index aad38d8b6..bb97c5588 100644 --- a/apps/main/src/pages/dao.tsx +++ b/apps/main/src/pages/dao.tsx @@ -9,7 +9,6 @@ import { I18nProvider } from '@lingui/react' import { I18nProvider as AriaI18nProvider } from 'react-aria' import { OverlayProvider } from '@react-aria/overlays' import delay from 'lodash/delay' -import 'intersection-observer' import 'focus-visible' import { ThemeProvider } from '@ui-kit/shared/ui/ThemeProvider' import { dynamicActivate, initTranslation, updateAppLocale } from '@ui-kit/lib/i18n' diff --git a/apps/main/src/pages/dex.tsx b/apps/main/src/pages/dex.tsx index 679ece89d..0131b444e 100644 --- a/apps/main/src/pages/dex.tsx +++ b/apps/main/src/pages/dex.tsx @@ -3,7 +3,6 @@ import dynamic from 'next/dynamic' import { Navigate, Route, Routes } from 'react-router' import { REFRESH_INTERVAL, ROUTE } from '@/dex/constants' import 'focus-visible' -import 'intersection-observer' import { i18n } from '@lingui/core' import { I18nProvider } from '@lingui/react' import { OverlayProvider } from '@react-aria/overlays' diff --git a/apps/main/src/pages/lend.tsx b/apps/main/src/pages/lend.tsx index c56ab7b61..5b620ffbc 100644 --- a/apps/main/src/pages/lend.tsx +++ b/apps/main/src/pages/lend.tsx @@ -7,7 +7,6 @@ import { I18nProvider } from '@lingui/react' import { OverlayProvider } from '@react-aria/overlays' import delay from 'lodash/delay' import { useCallback, useEffect, useState } from 'react' -import 'intersection-observer' import 'focus-visible' import { HashRouter } from 'react-router-dom' import { connectWalletLocales, initOnboard } from '@ui-kit/features/connect-wallet' From 67eaef126b3afc79bb039fc227ec49c4d925798f Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Mon, 27 Jan 2025 17:01:22 +0100 Subject: [PATCH 4/5] refactor: consistent import --- .../Charts/GaugeWeightHistoryChart/index.tsx | 6 +-- .../components/Charts/LineChartComponent.tsx | 2 +- .../ComboBoxSelectGauge/ComboBox.tsx | 8 +-- .../ComboBoxSelectGauge/ComboBoxListChunk.tsx | 6 +-- .../ComboBoxSelectGauge/ComboBoxListItem.tsx | 4 +- .../components/ComboBoxSelectGauge/index.tsx | 14 +++--- .../components/ComboBoxSelectGauge/types.ts | 2 +- .../main/src/dao/components/ConnectWallet.tsx | 2 +- .../src/dao/components/CopyIconButton.tsx | 2 +- .../src/dao/components/DetailInfoEstGas.tsx | 8 +-- .../src/dao/components/InternalLinkButton.tsx | 2 +- apps/main/src/dao/components/Page404/Page.tsx | 2 +- .../PageAnalytics/CrvStats/index.tsx | 4 +- .../PositiveAndNegativeBarChart.tsx | 2 +- .../PageAnalytics/DailyLocksChart/index.tsx | 4 +- .../PageAnalytics/HoldersTable/index.tsx | 10 ++-- .../src/dao/components/PageAnalytics/Page.tsx | 8 +-- .../TopHoldersBarChartComponent.tsx | 4 +- .../PageAnalytics/TopHoldersChart/index.tsx | 10 ++-- .../VeCrvFeesChart/FeesBarChart.tsx | 2 +- .../PageAnalytics/VeCrvFeesChart/index.tsx | 4 +- .../PageAnalytics/VeCrvFeesTable/index.tsx | 4 +- .../dao/components/PageAnalytics/constants.ts | 2 +- .../dao/components/PageAnalytics/index.tsx | 4 +- .../dao/components/PageDisclaimer/Page.tsx | 4 +- .../PageGauge/GaugeHeader/index.tsx | 8 +-- .../PageGauge/GaugeMetrics/index.tsx | 12 ++--- .../PageGauge/GaugeVotesTable/constants.ts | 4 +- .../PageGauge/GaugeVotesTable/index.tsx | 10 ++-- .../src/dao/components/PageGauge/Page.tsx | 8 +-- .../src/dao/components/PageGauge/index.tsx | 4 +- .../components/PageGauges/GaugeList/index.tsx | 12 ++--- .../PageGauges/GaugeListItem/GaugeDetails.tsx | 8 +-- .../GaugeListItem/GaugeDetailsSm.tsx | 4 +- .../GaugeListItem/GaugeListColumns.tsx | 4 +- .../GaugeListItem/GaugeWeightVotesColumns.tsx | 4 +- .../GaugeListItem/SmallScreenCard.tsx | 12 ++--- .../PageGauges/GaugeListItem/TitleComp.tsx | 12 ++--- .../PageGauges/GaugeListItem/index.tsx | 24 ++++----- .../PageGauges/GaugeVoting/CurrentVotes.tsx | 16 +++--- .../GaugeVoting/GaugeVotingStats.tsx | 6 +-- .../GaugeVoting/VoteGauge/index.tsx | 4 +- .../GaugeVoting/VoteGaugeField/index.tsx | 6 +-- .../PageGauges/GaugeVoting/constants.ts | 4 +- .../PageGauges/GaugeVoting/index.tsx | 4 +- .../GaugeWeightDistribution/index.tsx | 6 +-- .../src/dao/components/PageGauges/Page.tsx | 10 ++-- .../dao/components/PageGauges/constants.ts | 4 +- .../src/dao/components/PageGauges/index.tsx | 6 +-- .../src/dao/components/PageProposal/Page.tsx | 8 +-- .../PageProposal/ProposalHeader/index.tsx | 8 +-- .../ProposalInformation/index.tsx | 4 +- .../components/PageProposal/Voters/index.tsx | 4 +- .../src/dao/components/PageProposal/index.tsx | 14 +++--- .../src/dao/components/PageProposals/Page.tsx | 10 ++-- .../PageProposals/Proposal/index.tsx | 6 +-- .../components/ProposalsFilters.tsx | 4 +- .../dao/components/PageProposals/constants.ts | 2 +- .../dao/components/PageProposals/index.tsx | 6 +-- .../main/src/dao/components/PageUser/Page.tsx | 8 +-- .../PageUser/UserGaugeVotesTable/index.tsx | 8 +-- .../components/PageUser/UserHeader/index.tsx | 8 +-- .../PageUser/UserLocksTable/index.tsx | 8 +-- .../PageUser/UserProposalVotesTable/index.tsx | 8 +-- .../components/PageUser/UserStats/index.tsx | 4 +- .../src/dao/components/PageUser/constants.ts | 2 +- .../src/dao/components/PageUser/index.tsx | 6 +-- .../src/dao/components/PageVeCrv/Page.tsx | 20 ++++---- .../PageVeCrv/components/FieldDatePicker.tsx | 6 +-- .../PageVeCrv/components/FieldLockedAmt.tsx | 2 +- .../PageVeCrv/components/FormActions.tsx | 2 +- .../PageVeCrv/components/FormLockCreate.tsx | 28 +++++------ .../PageVeCrv/components/FormLockCrv.tsx | 24 ++++----- .../PageVeCrv/components/FormLockDate.tsx | 24 ++++----- .../src/dao/components/PageVeCrv/index.tsx | 10 ++-- .../src/dao/components/PageVeCrv/types.ts | 2 +- .../src/dao/components/PageVeCrv/utils.ts | 2 +- .../components/PaginatedTable/NoTableData.tsx | 2 +- .../dao/components/PaginatedTable/index.tsx | 4 +- .../ProposalVoteStatusBox/index.tsx | 4 +- .../dao/components/TokenIcons/TokenIcon.tsx | 2 +- .../components/UserBox/UserInformation.tsx | 4 +- .../src/dao/components/UserBox/VoteDialog.tsx | 6 +-- .../main/src/dao/components/UserBox/index.tsx | 2 +- apps/main/src/dao/hooks/useLayoutHeight.ts | 4 +- apps/main/src/dao/hooks/usePageOnMount.ts | 16 +++--- apps/main/src/dao/hooks/useProposalMapper.ts | 2 +- apps/main/src/dao/hooks/useProposalsMapper.ts | 2 +- apps/main/src/dao/layout/Header.tsx | 12 ++--- apps/main/src/dao/layout/Settings.tsx | 2 +- apps/main/src/dao/layout/index.tsx | 8 +-- apps/main/src/dao/lib/curvejs.ts | 8 +-- apps/main/src/dao/networks.ts | 4 +- .../src/dao/store/createAnalyticsSlice.ts | 8 +-- apps/main/src/dao/store/createAppSlice.ts | 4 +- apps/main/src/dao/store/createCacheSlice.ts | 6 +-- apps/main/src/dao/store/createGasSlice.ts | 8 +-- apps/main/src/dao/store/createGaugesSlice.ts | 4 +- apps/main/src/dao/store/createLayoutSlice.ts | 6 +-- .../src/dao/store/createLockedCrvSlice.ts | 10 ++-- .../src/dao/store/createProposalsSlice.ts | 10 ++-- apps/main/src/dao/store/createTokensSlice.ts | 2 +- .../main/src/dao/store/createUsdRatesSlice.ts | 8 +-- apps/main/src/dao/store/createUserSlice.ts | 12 ++--- apps/main/src/dao/store/createWalletSlice.ts | 6 +-- apps/main/src/dao/store/useStore.ts | 16 +++--- apps/main/src/dao/types/dao.types.ts | 2 +- apps/main/src/dao/utils/index.ts | 2 +- apps/main/src/dao/utils/utilsRouter.ts | 6 +-- .../src/dex/components/AlertFormWarning.tsx | 2 +- apps/main/src/dex/components/ChipPool.tsx | 4 +- apps/main/src/dex/components/ChipToken.tsx | 4 +- .../ComboBoxSelectToken/ComboBox.tsx | 8 +-- .../ComboBoxSelectToken/ComboBoxListChunk.tsx | 6 +-- .../ComboBoxSelectToken/ComboBoxListItem.tsx | 10 ++-- .../ComboBoxSelectedToken.tsx | 6 +-- .../ComboBoxTokenUserBalance.tsx | 2 +- .../components/ComboBoxSelectToken/index.tsx | 14 +++--- .../components/ComboBoxSelectToken/types.ts | 2 +- .../main/src/dex/components/ConnectWallet.tsx | 2 +- .../src/dex/components/DetailInfoEstGas.tsx | 8 +-- .../src/dex/components/FormConnectWallet.tsx | 4 +- apps/main/src/dex/components/Page404/Page.tsx | 2 +- .../dex/components/PageCompensation/Page.tsx | 18 +++---- .../components/PageCompensation/abis/index.ts | 14 +++--- .../components/Compensation.tsx | 16 +++--- .../components/Compensations.tsx | 6 +-- .../dex/components/PageCompensation/index.tsx | 12 ++--- .../ConfirmModal/CreatePoolButton.tsx | 8 +-- .../ConfirmModal/ModalDialog.tsx | 2 +- .../PageCreatePool/ConfirmModal/index.tsx | 24 ++++----- .../dex/components/PageCreatePool/Page.tsx | 14 +++--- .../Parameters/InitialPrice.tsx | 10 ++-- .../Parameters/SelectPoolImplementation.tsx | 6 +-- .../Parameters/SelectPreset.tsx | 10 ++-- .../PageCreatePool/Parameters/index.tsx | 18 +++---- .../PageCreatePool/PoolInfo/index.tsx | 8 +-- .../PageCreatePool/PoolType/index.tsx | 8 +-- .../SelectTokenModal/ComboBoxTokenPicker.tsx | 16 +++--- .../PageCreatePool/Summary/OracleSummary.tsx | 10 ++-- .../CryptoswapParameters.tsx | 8 +-- .../StableswapParameters.tsx | 8 +-- .../Summary/ParametersSummary/index.tsx | 14 +++--- .../Summary/PoolInfoSummary.tsx | 8 +-- .../Summary/PoolPresetSummary.tsx | 6 +-- .../Summary/PoolTypeSummary.tsx | 6 +-- .../Summary/TokensInPoolSummary.tsx | 18 +++---- .../PageCreatePool/Summary/index.tsx | 16 +++--- .../PageCreatePool/Summary/styles.tsx | 2 +- .../TokensInPool/SelectToken.tsx | 10 ++-- .../PageCreatePool/TokensInPool/SetOracle.tsx | 12 ++--- .../PageCreatePool/TokensInPool/index.tsx | 22 ++++---- .../PageCreatePool/components/Navigation.tsx | 8 +-- .../components/SwitchTokensButton.tsx | 6 +-- .../components/PageCreatePool/constants.ts | 4 +- .../dex/components/PageCreatePool/index.tsx | 26 +++++----- .../dex/components/PageCreatePool/types.ts | 4 +- .../dex/components/PageCreatePool/utils.ts | 6 +-- .../src/dex/components/PageCrvLocker/Page.tsx | 20 ++++---- .../components/FieldDatePicker.tsx | 6 +-- .../components/FieldLockedAmt.tsx | 2 +- .../PageCrvLocker/components/FormActions.tsx | 2 +- .../components/FormLockCreate.tsx | 26 +++++----- .../PageCrvLocker/components/FormLockCrv.tsx | 20 ++++---- .../PageCrvLocker/components/FormLockDate.tsx | 24 ++++----- .../dex/components/PageCrvLocker/index.tsx | 10 ++-- .../src/dex/components/PageCrvLocker/types.ts | 2 +- .../src/dex/components/PageCrvLocker/utils.ts | 2 +- .../src/dex/components/PageDashboard/Page.tsx | 14 +++--- .../ClassicPoolsOnlyDescription.tsx | 4 +- .../components/FormClaimFees.tsx | 10 ++-- .../components/FormClaimFeesButtons.tsx | 8 +-- .../PageDashboard/components/FormVecrv.tsx | 18 +++---- .../PageDashboard/components/Summary.tsx | 16 +++--- .../components/SummaryClaimable.tsx | 4 +- .../components/SummaryRecurrence.tsx | 4 +- .../PageDashboard/components/SummaryTotal.tsx | 4 +- .../components/TableCellBalances.tsx | 6 +-- .../components/TableCellClaimables.tsx | 4 +- .../components/TableCellProfit.tsx | 4 +- .../components/TableCellRewards.tsx | 18 +++---- .../components/TableCellRewardsTooltip.tsx | 4 +- .../PageDashboard/components/TableHead.tsx | 6 +-- .../PageDashboard/components/TableRow.tsx | 16 +++--- .../components/TableRowMobile.tsx | 16 +++--- .../components/TableRowNoResult.tsx | 2 +- .../components/TableSortDialog.tsx | 4 +- .../PageDashboard/dashboardContext.ts | 4 +- .../dex/components/PageDashboard/index.tsx | 32 ++++++------ .../src/dex/components/PageDashboard/types.ts | 4 +- .../src/dex/components/PageDashboard/utils.ts | 4 +- .../PageDeployGauge/DeployMainnet.tsx | 12 ++--- .../PageDeployGauge/DeploySidechain.tsx | 12 ++--- .../dex/components/PageDeployGauge/Page.tsx | 10 ++-- .../PageDeployGauge/ProcessSummary.tsx | 8 +-- .../components/DeployGaugeButton.tsx | 16 +++--- .../components/DialogSelect.tsx | 2 +- .../dex/components/PageDeployGauge/index.tsx | 14 +++--- .../dex/components/PageDeployGauge/types.ts | 2 +- .../dex/components/PageDisclaimer/Page.tsx | 4 +- .../dex/components/PageIntegrations/Page.tsx | 10 ++-- .../components/SelectIntegrationTags.tsx | 2 +- .../dex/components/PageIntegrations/index.tsx | 14 +++--- .../dex/components/PageIntegrations/utils.ts | 4 +- .../Deposit/components/FieldsDeposit.tsx | 10 ++-- .../Deposit/components/FormDeposit.tsx | 32 ++++++------ .../Deposit/components/FormDepositStake.tsx | 34 ++++++------- .../PagePool/Deposit/components/FormStake.tsx | 22 ++++---- .../dex/components/PagePool/Deposit/index.tsx | 18 +++---- .../dex/components/PagePool/Deposit/types.ts | 2 +- .../dex/components/PagePool/Deposit/utils.ts | 2 +- .../main/src/dex/components/PagePool/Page.tsx | 16 +++--- .../ChartOhlcWrapper/LiquidityData.tsx | 8 +-- .../ChartOhlcWrapper/PoolActivity.tsx | 8 +-- .../ChartOhlcWrapper/TradesData.tsx | 8 +-- .../PoolDetails/ChartOhlcWrapper/index.tsx | 8 +-- .../CurrencyReservesContent.tsx | 8 +-- .../PoolDetails/CurrencyReserves/index.tsx | 14 +++--- .../PoolDetails/CurrencyReserves/types.ts | 2 +- .../PoolDetails/PoolParameters/index.tsx | 12 ++--- .../PoolDetails/PoolStats/Contracts.tsx | 12 ++--- .../PoolDetails/PoolStats/PoolParameters.tsx | 16 +++--- .../PoolDetails/PoolStats/PoolParametersA.tsx | 4 +- .../PoolStats/PoolParametersDaoFees.tsx | 2 +- .../PoolDetails/PoolStats/PoolTotalStaked.tsx | 4 +- .../PoolDetails/PoolStats/Rewards.tsx | 22 ++++---- .../PagePool/PoolDetails/PoolStats/index.tsx | 16 +++--- .../dex/components/PagePool/Swap/index.tsx | 40 +++++++-------- .../src/dex/components/PagePool/Swap/types.ts | 2 +- .../src/dex/components/PagePool/Swap/utils.ts | 6 +-- .../components/PagePool/UserDetails/index.tsx | 10 ++-- .../Withdraw/components/FormClaim.tsx | 14 +++--- .../Withdraw/components/FormUnstake.tsx | 18 +++---- .../Withdraw/components/FormWithdraw.tsx | 38 +++++++------- .../components/PagePool/Withdraw/index.tsx | 16 +++--- .../dex/components/PagePool/Withdraw/types.ts | 4 +- .../dex/components/PagePool/Withdraw/utils.ts | 2 +- .../PagePool/components/AddGaugeLink.tsx | 10 ++-- .../PagePool/components/AlertSeedAmounts.tsx | 4 +- .../components/CampaignRewardsBanner.tsx | 2 +- .../PagePool/components/ContractComp.tsx | 10 ++-- .../components/DetailInfoEstLpTokens.tsx | 4 +- .../components/DetailInfoExpectedApy.tsx | 4 +- .../components/DetailInfoSlippage.tsx | 2 +- .../DetailInfoSlippageTolerance.tsx | 4 +- .../PagePool/components/FieldToken.tsx | 6 +-- .../components/SelectedLpTokenExpected.tsx | 8 +-- .../components/SelectedOneCoinExpected.tsx | 8 +-- .../PagePool/components/TransferActions.tsx | 14 +++--- .../src/dex/components/PagePool/index.tsx | 38 +++++++------- .../main/src/dex/components/PagePool/types.ts | 2 +- .../main/src/dex/components/PagePool/utils.ts | 4 +- .../src/dex/components/PagePoolList/Page.tsx | 22 ++++---- .../PagePoolList/components/PoolRow.tsx | 18 +++---- .../components/TableCellRewards.tsx | 10 ++-- .../components/TableCellRewardsBase.tsx | 8 +-- .../components/TableCellRewardsCrv.tsx | 4 +- .../components/TableCellRewardsOthers.tsx | 2 +- .../PagePoolList/components/TableCellTvl.tsx | 2 +- .../components/TableCellVolume.tsx | 2 +- .../PagePoolList/components/TableHead.tsx | 6 +-- .../components/TableHeadRewards.tsx | 4 +- .../PagePoolList/components/TableRow.tsx | 22 ++++---- .../components/TableRowMobile.tsx | 22 ++++---- .../components/TableRowNoResult.tsx | 4 +- .../TableCheckboxHideSmallPools.tsx | 4 +- .../TableSettings/TableSettings.tsx | 8 +-- .../components/TooltipBaseApy.tsx | 2 +- .../src/dex/components/PagePoolList/index.tsx | 28 +++++------ .../src/dex/components/PagePoolList/types.ts | 6 +-- .../src/dex/components/PagePoolList/utils.ts | 2 +- .../dex/components/PageRouterSwap/Page.tsx | 20 ++++---- .../components/DetailInfoExchangeRate.tsx | 2 +- .../components/DetailInfoTradeRoute.tsx | 6 +-- .../components/DetailInfoTradeRouteRoute.tsx | 12 ++--- .../components/RouterSwapAlerts.tsx | 8 +-- .../components/useSelectToList.tsx | 4 +- .../dex/components/PageRouterSwap/index.tsx | 46 ++++++++--------- .../dex/components/PageRouterSwap/types.ts | 2 +- .../dex/components/PageRouterSwap/utils.ts | 8 +-- apps/main/src/dex/components/PoolLabel.tsx | 16 +++--- .../src/dex/components/PoolRewardsCrv.tsx | 4 +- apps/main/src/dex/components/TokenIcon.tsx | 2 +- apps/main/src/dex/components/TokenIcons.tsx | 2 +- apps/main/src/dex/entities/chain.ts | 6 +-- apps/main/src/dex/entities/curve/lib.ts | 2 +- .../dex/entities/gauge/api/estimate-gas.ts | 4 +- .../src/dex/entities/gauge/api/gauge-query.ts | 4 +- .../dex/entities/gauge/api/rewards-mutate.ts | 4 +- .../src/dex/entities/gauge/lib/gauge-info.ts | 2 +- .../dex/entities/gauge/lib/reward-actions.ts | 10 ++-- .../gauge/model/estimate-gas-options.ts | 4 +- .../entities/gauge/model/gauge-validation.ts | 6 +-- .../entities/gauge/model/mutate-options.ts | 4 +- .../dex/entities/gauge/model/query-keys.ts | 2 +- apps/main/src/dex/entities/signer/lib.ts | 2 +- apps/main/src/dex/entities/token/lib.ts | 8 +-- .../lib/form-context.ts | 2 +- .../model/validation-suite.ts | 2 +- .../add-gauge-reward-token/types/index.ts | 2 +- .../ui/AddRewardToken.tsx | 14 +++--- .../ui/DistributorInput.tsx | 2 +- .../ui/EstimatedGasInfo.tsx | 8 +-- .../add-gauge-reward-token/ui/FormActions.tsx | 8 +-- .../ui/TokenSelector.tsx | 14 +++--- .../add-gauge-reward-token/ui/styled.tsx | 2 +- .../model/default-values.ts | 4 +- .../model/validation-suite.ts | 4 +- .../ui/ActionsStepper.tsx | 12 ++--- .../ui/AmountTokenInput.tsx | 22 ++++---- .../deposit-gauge-reward/ui/DepositReward.tsx | 12 ++--- .../deposit-gauge-reward/ui/EpochInput.tsx | 10 ++-- .../deposit-gauge-reward/ui/GasEstimation.tsx | 8 +-- .../deposit-gauge-reward/ui/HelperFields.tsx | 8 +-- .../deposit-gauge-reward/ui/styled.tsx | 2 +- .../dex/hooks/useCampaignRewardsMapper.tsx | 2 +- apps/main/src/dex/hooks/useLayoutHeight.ts | 4 +- apps/main/src/dex/hooks/usePageOnMount.ts | 14 +++--- apps/main/src/dex/hooks/usePoolAlert.tsx | 12 ++--- .../dex/hooks/usePoolTokensLinksMapper.tsx | 2 +- .../main/src/dex/hooks/usePoolTotalStaked.tsx | 8 +-- .../src/dex/hooks/useSearchTermMapper.tsx | 4 +- apps/main/src/dex/hooks/useTokenAlert.tsx | 2 +- apps/main/src/dex/hooks/useTokensMapper.tsx | 8 +-- .../src/dex/hooks/useTokensNameMapper.tsx | 4 +- apps/main/src/dex/layout/default/Header.tsx | 10 ++-- apps/main/src/dex/layout/default/Settings.tsx | 2 +- apps/main/src/dex/layout/default/index.tsx | 14 +++--- apps/main/src/dex/lib/curvejs.ts | 20 ++++---- apps/main/src/dex/lib/utils.ts | 2 +- apps/main/src/dex/store/createCacheSlice.ts | 6 +-- .../dex/store/createCampaignRewardsSlice.ts | 4 +- .../src/dex/store/createCreatePoolSlice.ts | 10 ++-- .../src/dex/store/createDashboardSlice.ts | 16 +++--- .../src/dex/store/createDeployGaugeSlice.ts | 10 ++-- apps/main/src/dex/store/createGasSlice.ts | 8 +-- apps/main/src/dex/store/createGlobalSlice.ts | 6 +-- .../src/dex/store/createIntegrationsSlice.ts | 8 +-- .../src/dex/store/createLockedCrvSlice.ts | 10 ++-- .../main/src/dex/store/createNetworksSlice.ts | 6 +-- .../src/dex/store/createPoolDepositSlice.ts | 28 +++++------ .../main/src/dex/store/createPoolListSlice.ts | 12 ++--- .../main/src/dex/store/createPoolSwapSlice.ts | 22 ++++---- .../src/dex/store/createPoolWithdrawSlice.ts | 22 ++++---- apps/main/src/dex/store/createPoolsSlice.ts | 10 ++-- .../src/dex/store/createQuickSwapSlice.ts | 18 +++---- .../src/dex/store/createSelectTokenSlice.tsx | 4 +- apps/main/src/dex/store/createTokensSlice.ts | 6 +-- .../main/src/dex/store/createUsdRatesSlice.ts | 6 +-- .../src/dex/store/createUserBalancesSlice.ts | 6 +-- apps/main/src/dex/store/createUserSlice.ts | 8 +-- apps/main/src/dex/store/createWalletSlice.ts | 6 +-- apps/main/src/dex/store/useStore.ts | 44 ++++++++-------- apps/main/src/dex/types/main.types.ts | 2 +- apps/main/src/dex/utils/index.ts | 6 +-- apps/main/src/dex/utils/utilsCurvejs.ts | 2 +- apps/main/src/dex/utils/utilsGasPrices.ts | 2 +- apps/main/src/dex/utils/utilsRouter.ts | 6 +-- apps/main/src/dex/utils/utilsSwap.ts | 6 +-- .../widgets/manage-gauge/ui/ManageGauge.tsx | 12 ++--- .../src/lend/components/AdvancedSettings.tsx | 4 +- .../src/lend/components/AlertFormWarning.tsx | 2 +- .../components/SummaryChange.tsx | 6 +-- .../components/SummaryCreate.tsx | 6 +-- .../components/SummaryFull.tsx | 6 +-- .../components/SummaryPartial.tsx | 6 +-- .../components/SummarySelfLiquidate.tsx | 6 +-- .../components/AlertLoanSummary/index.tsx | 12 ++--- .../lend/components/AlertLoanSummary/types.ts | 2 +- .../src/lend/components/AlertNoLoanFound.tsx | 4 +- .../components/AlertNoVaultSharesFound.tsx | 8 +-- .../lend/components/CampaignRewardsBanner.tsx | 2 +- .../ChartBandBalancesSettings.tsx | 2 +- .../ChartBandBalancesSettingsContent.tsx | 2 +- .../components/ChartBandBalances/index.tsx | 10 ++-- .../ChartLiquidationRange/index.tsx | 4 +- .../ChartOhlcWrapper/LiquidityData.tsx | 6 +-- .../ChartOhlcWrapper/PoolActivity.tsx | 6 +-- .../ChartOhlcWrapper/TradesData.tsx | 6 +-- .../components/ChartOhlcWrapper/index.tsx | 6 +-- .../lend/components/ChartOhlcWrapper/types.ts | 2 +- .../src/lend/components/ChipCollateral.tsx | 2 +- .../src/lend/components/ConnectWallet.tsx | 4 +- .../components/DetailInfoCrvIncentives.tsx | 10 ++-- .../lend/components/DetailInfoEstimateGas.tsx | 10 ++-- .../src/lend/components/DetailInfoHealth.tsx | 10 ++-- .../src/lend/components/DetailInfoLTV.tsx | 4 +- .../components/ExpectedLabel.tsx | 6 +-- .../components/ExpectedSummary.tsx | 6 +-- .../components/ExpectedSwapDetails.tsx | 10 ++-- .../components/HopSteps.tsx | 2 +- .../components/RouteToken.tsx | 4 +- .../index.tsx | 8 +-- .../types.ts | 2 +- .../lend/components/DetailInfoLiqRange.tsx | 8 +-- .../components/DetailInfoLiqRangeEdit.tsx | 2 +- .../src/lend/components/DetailInfoRate.tsx | 4 +- .../DetailInfoSlippageTolerance.tsx | 2 +- .../components/DetailInfoAddressLookup.tsx | 10 ++-- .../components/DetailsContracts.tsx | 12 ++--- .../DetailsMarket/components/DetailsLoan.tsx | 30 +++++------ .../components/DetailsLoanChartBalances.tsx | 10 ++-- .../components/DetailsSupply.tsx | 20 ++++---- .../components/DetailsSupplyRewards.tsx | 10 ++-- .../components/DetailsSupplyRewardsCrv.tsx | 4 +- .../components/MarketParameters.tsx | 8 +-- .../lend/components/DetailsMarket/index.tsx | 6 +-- .../components/DetailsConnectWallet.tsx | 4 +- .../components/DetailsUserLoan.tsx | 36 ++++++------- .../DetailsUserLoanAlertSoftLiquidation.tsx | 4 +- .../DetailsUserLoanChartBandBalances.tsx | 12 ++--- .../DetailsUserLoanChartLiquidationRange.tsx | 8 +-- .../components/DetailsUserSupply.tsx | 18 +++---- .../DetailsUserSupplyStakedUnstaked.tsx | 2 +- .../src/lend/components/DetailsUser/index.tsx | 6 +-- .../src/lend/components/DetailsUser/styles.ts | 4 +- .../src/lend/components/DetailsUser/type.ts | 2 +- .../src/lend/components/DetailsUser/utils.ts | 2 +- .../src/lend/components/InpChipUsdRate.tsx | 4 +- .../components/InpChipVaultShareUsdRate.tsx | 6 +-- apps/main/src/lend/components/InpToken.tsx | 6 +-- .../src/lend/components/InpTokenBorrow.tsx | 6 +-- .../src/lend/components/InpTokenRemove.tsx | 6 +-- .../lend/components/LoanFormAlertWarning.tsx | 2 +- .../src/lend/components/LoanFormConnect.tsx | 4 +- .../main/src/lend/components/Page404/Page.tsx | 2 +- .../lend/components/PageDisclaimer/Page.tsx | 4 +- .../lend/components/PageIntegrations/Page.tsx | 10 ++-- .../components/PageIntegrations/index.tsx | 12 ++--- .../LoanFormCreate/components/DetailInfo.tsx | 12 ++--- .../components/DetailInfoLeverage.tsx | 30 +++++------ .../components/DetailInfoNonLeverage.tsx | 20 ++++---- .../DialogHealthLeverageWarning.tsx | 2 +- .../PageLoanCreate/LoanFormCreate/index.tsx | 38 +++++++------- .../lend/components/PageLoanCreate/Page.tsx | 32 ++++++------ .../lend/components/PageLoanCreate/index.tsx | 10 ++-- .../lend/components/PageLoanCreate/types.ts | 6 +-- .../lend/components/PageLoanCreate/utils.ts | 6 +-- .../LoanBorrowMore/components/DetailInfo.tsx | 12 ++--- .../components/DetailInfoLeverage.tsx | 24 ++++----- .../PageLoanManage/LoanBorrowMore/index.tsx | 42 ++++++++-------- .../PageLoanManage/LoanBorrowMore/types.ts | 6 +-- .../PageLoanManage/LoanBorrowMore/utils.ts | 6 +-- .../LoanCollateralAdd/index.tsx | 38 +++++++------- .../PageLoanManage/LoanCollateralAdd/types.ts | 2 +- .../LoanCollateralRemove/index.tsx | 40 +++++++-------- .../LoanCollateralRemove/types.ts | 4 +- .../LoanRepay/components/DetailInfo.tsx | 28 +++++------ .../PageLoanManage/LoanRepay/index.tsx | 40 +++++++-------- .../PageLoanManage/LoanRepay/types.ts | 6 +-- .../PageLoanManage/LoanRepay/utils.ts | 4 +- .../LoanSelfLiquidation/index.tsx | 34 ++++++------- .../LoanSelfLiquidation/types.ts | 4 +- .../lend/components/PageLoanManage/Page.tsx | 38 +++++++------- .../lend/components/PageLoanManage/index.tsx | 18 +++---- .../lend/components/PageLoanManage/types.ts | 2 +- .../lend/components/PageLoanManage/utils.ts | 4 +- .../lend/components/PageMarketList/Page.tsx | 24 ++++----- .../components/MarketListItemContent.tsx | 8 +-- .../components/MarketListItemHeader.tsx | 6 +-- .../components/MarketListNoResult.tsx | 6 +-- .../TableRowViewContentTable/TableHead.tsx | 8 +-- .../TableRowViewContentTable/TableRow.tsx | 32 ++++++------ .../TableRowContainer.tsx | 18 +++---- .../TableRowMobile.tsx | 10 ++-- .../TableRowMobileContent.tsx | 24 ++++----- .../TableRowMobileHead.tsx | 6 +-- .../TableRowViewContentTable/index.tsx | 8 +-- .../components/TableSettings/SelectFilter.tsx | 4 +- .../TableSettings/SelectFilterBorrowLend.tsx | 2 +- .../TableSettings/SelectFilterType.tsx | 6 +-- .../TableSettings/TableSettings.tsx | 8 +-- .../lend/components/PageMarketList/index.tsx | 18 +++---- .../lend/components/PageMarketList/types.ts | 6 +-- .../lend/components/PageMarketList/utils.ts | 2 +- .../src/lend/components/PageVault/Page.tsx | 34 ++++++------- .../components/PageVault/VaultClaim/index.tsx | 16 +++--- .../components/PageVault/VaultClaim/types.ts | 2 +- .../components/PageVault/VaultClaim/utils.ts | 4 +- .../PageVault/VaultDepositMint/index.tsx | 26 +++++----- .../PageVault/VaultDepositMint/types.ts | 2 +- .../PageVault/VaultDepositMint/utils.ts | 4 +- .../components/PageVault/VaultStake/index.tsx | 22 ++++---- .../components/PageVault/VaultStake/types.ts | 2 +- .../components/PageVault/VaultStake/utils.ts | 4 +- .../PageVault/VaultUnstake/index.tsx | 20 ++++---- .../PageVault/VaultUnstake/types.ts | 2 +- .../PageVault/VaultUnstake/utils.ts | 4 +- .../PageVault/VaultWithdrawRedeem/index.tsx | 24 ++++----- .../PageVault/VaultWithdrawRedeem/types.ts | 2 +- .../PageVault/VaultWithdrawRedeem/utils.ts | 2 +- .../src/lend/components/PageVault/index.tsx | 18 +++---- .../SharedCellData/CellBorrowRate.tsx | 4 +- .../components/SharedCellData/CellCap.tsx | 4 +- .../SharedCellData/CellHealthStatus.tsx | 4 +- .../SharedCellData/CellLiquidationRange.tsx | 2 +- .../SharedCellData/CellLlammaBalances.tsx | 4 +- .../SharedCellData/CellLoanState.tsx | 4 +- .../SharedCellData/CellLoanTotalDebt.tsx | 4 +- .../SharedCellData/CellLoanUserHealth.tsx | 2 +- .../SharedCellData/CellLoanUserState.tsx | 2 +- .../components/SharedCellData/CellLoss.tsx | 2 +- .../SharedCellData/CellMaxLeverage.tsx | 4 +- .../components/SharedCellData/CellRewards.tsx | 10 ++-- .../CellSupplyTotalLiquidity.tsx | 4 +- .../components/SharedCellData/CellToken.tsx | 8 +-- .../CellTotalCollateralValue.tsx | 6 +-- .../SharedCellData/CellUserBalances.tsx | 2 +- .../SharedCellData/CellUserMain.tsx | 8 +-- .../SharedCellData/CellUserVaultShares.tsx | 6 +-- .../SharedCellData/CellUtilization.tsx | 6 +-- .../SharedCellData/CellUtilizationTooltip.tsx | 4 +- .../SharedCellData/CellVaultPricePerShare.tsx | 4 +- .../PageTitleBorrowSupplyLinks.tsx | 6 +-- apps/main/src/lend/components/TokenIcon.tsx | 2 +- apps/main/src/lend/components/TokenIcons.tsx | 2 +- apps/main/src/lend/components/TokenLabel.tsx | 10 ++-- .../src/lend/entities/chain/chain-hooks.ts | 6 +-- .../src/lend/entities/chain/chain-info.ts | 4 +- .../src/lend/entities/chain/chain-query.ts | 4 +- .../main/src/lend/entities/chain/chain-tvl.ts | 6 +-- apps/main/src/lend/entities/chain/tvl.ts | 2 +- .../src/lend/entities/chain/validation.ts | 4 +- apps/main/src/lend/entities/token/api.ts | 4 +- apps/main/src/lend/entities/token/lib.ts | 2 +- .../lend/entities/token/model/token-query.ts | 4 +- .../lend/entities/token/model/validation.ts | 4 +- .../main/src/lend/hooks/useAbiTotalSupply.tsx | 8 +-- .../lend/hooks/useCampaignRewardsMapper.tsx | 2 +- apps/main/src/lend/hooks/useContract.ts | 8 +-- apps/main/src/lend/hooks/useMarketAlert.tsx | 2 +- apps/main/src/lend/hooks/usePageOnMount.ts | 14 +++--- .../src/lend/hooks/useSearchTermMapper.tsx | 2 +- apps/main/src/lend/hooks/useSupplyTotalApr.ts | 10 ++-- apps/main/src/lend/hooks/useTitleMapper.tsx | 2 +- apps/main/src/lend/hooks/useVaultShares.ts | 8 +-- apps/main/src/lend/layout/Header.tsx | 12 ++--- apps/main/src/lend/layout/Settings.tsx | 2 +- apps/main/src/lend/layout/index.tsx | 10 ++-- apps/main/src/lend/lib/apiLending.ts | 12 ++--- apps/main/src/lend/networks.ts | 2 +- apps/main/src/lend/store/createAppSlice.ts | 6 +-- apps/main/src/lend/store/createCacheSlice.ts | 4 +- .../lend/store/createCampaignRewardsSlice.ts | 6 +-- .../src/lend/store/createChartBandsStore.tsx | 2 +- apps/main/src/lend/store/createGasSlice.ts | 12 ++--- .../src/lend/store/createIntegrationsSlice.ts | 10 ++-- apps/main/src/lend/store/createLayoutSlice.ts | 6 +-- .../lend/store/createLoanBorrowMoreSlice.ts | 16 +++--- .../store/createLoanCollateralAddSlice.ts | 14 +++--- .../store/createLoanCollateralRemoveSlice.ts | 14 +++--- .../src/lend/store/createLoanCreateSlice.ts | 16 +++--- .../src/lend/store/createLoanRepaySlice.ts | 22 ++++---- .../store/createLoanSelfLiquidationSlice.ts | 14 +++--- .../src/lend/store/createMarketListSlice.ts | 22 ++++---- .../main/src/lend/store/createMarketsSlice.ts | 8 +-- .../src/lend/store/createOhlcChartSlice.ts | 6 +-- apps/main/src/lend/store/createTokensSlice.ts | 2 +- apps/main/src/lend/store/createUserSlice.ts | 6 +-- .../src/lend/store/createVaultClaimSlice.ts | 12 ++--- .../lend/store/createVaultDepositMintSlice.ts | 14 +++--- .../src/lend/store/createVaultStakeSlice.ts | 14 +++--- .../src/lend/store/createVaultUnstakeSlice.ts | 14 +++--- .../store/createVaultWithdrawRedeemSlice.ts | 16 +++--- apps/main/src/lend/store/createWalletSlice.ts | 4 +- apps/main/src/lend/store/useStore.ts | 50 ++++++++++--------- apps/main/src/lend/types/lend.types.ts | 2 +- apps/main/src/lend/utils/helpers.ts | 2 +- apps/main/src/lend/utils/utilsGasPrices.ts | 6 +-- apps/main/src/lend/utils/utilsRewards.ts | 2 +- apps/main/src/lend/utils/utilsRouter.ts | 6 +-- .../src/loan/components/AdvancedSettings.tsx | 4 +- .../src/loan/components/AlertFormWarning.tsx | 2 +- .../ChartBandBalancesSettings.tsx | 2 +- .../ChartBandBalancesSettingsContent.tsx | 2 +- .../components/ChartBandBalances/index.tsx | 14 +++--- .../ChartLiquidationRange/index.tsx | 4 +- .../ChartOhlcWrapper/LiquidityData.tsx | 8 +-- .../ChartOhlcWrapper/PoolActivity.tsx | 8 +-- .../ChartOhlcWrapper/TradesData.tsx | 8 +-- .../components/ChartOhlcWrapper/index.tsx | 4 +- .../loan/components/ChartOhlcWrapper/types.ts | 2 +- .../src/loan/components/ChipCollateral.tsx | 2 +- .../components/CollateralLabelNameAddress.tsx | 2 +- .../src/loan/components/ConnectWallet.tsx | 4 +- .../loan/components/DetailInfoBorrowRate.tsx | 2 +- .../loan/components/DetailInfoEstimateGas.tsx | 6 +-- .../src/loan/components/DetailInfoHealth.tsx | 8 +-- .../loan/components/DetailInfoLiqRange.tsx | 6 +-- .../components/DetailInfoLiqRangeEdit.tsx | 4 +- .../DetailInfoSlippageTolerance.tsx | 2 +- .../loan/components/DialogHealthWarning.tsx | 2 +- .../src/loan/components/InpChipUsdRate.tsx | 2 +- .../loan/components/LoanFormAlertWarning.tsx | 2 +- .../src/loan/components/LoanFormConnect.tsx | 4 +- .../LoanInfoLlamma/LoanInfoParameters.tsx | 4 +- .../components/DetailInfoAddressLookup.tsx | 10 ++-- .../components/DetailsBandsChart.tsx | 8 +-- .../LoanInfoLlamma/components/DetailsInfo.tsx | 14 +++--- .../loan/components/LoanInfoLlamma/index.tsx | 18 +++---- .../components/AlertSoftLiquidation.tsx | 6 +-- .../components/ChartUserBands.tsx | 8 +-- .../components/ChartUserLiquidationRange.tsx | 6 +-- .../LoanInfoUser/components/UserInfoDebt.tsx | 4 +- .../components/UserInfoLiquidationRange.tsx | 2 +- .../components/UserInfoLlammaBalances.tsx | 6 +-- .../LoanInfoUser/components/UserInfoLoss.tsx | 6 +-- .../LoanInfoUser/components/UserInfos.tsx | 18 +++---- .../loan/components/LoanInfoUser/index.tsx | 20 ++++---- .../loan/components/LoanInfoUser/styles.ts | 2 +- .../src/loan/components/LoanInfoUser/utils.ts | 2 +- .../main/src/loan/components/Page404/Page.tsx | 2 +- .../DepositWithdraw/DeployButton.tsx | 2 +- .../DepositWithdraw/DepositModule.tsx | 4 +- .../DepositWithdraw/WithdrawModule.tsx | 4 +- .../DepositWithdraw/constants.ts | 2 +- .../DepositWithdraw/index.tsx | 20 ++++---- .../DepositWithdraw/styles.tsx | 2 +- .../components/PageCrvUsdStaking/Page.tsx | 10 ++-- .../PageCrvUsdStaking/StatsBanner/index.tsx | 4 +- .../TransactionDetails/FieldValue.tsx | 4 +- .../TransactionDetails/index.tsx | 12 ++--- .../TransactionTracking/DepositTracking.tsx | 4 +- .../TransactionTracking/WithdrawTracking.tsx | 4 +- .../TransactionTracking/index.tsx | 2 +- .../UserPositionBanner/index.tsx | 6 +-- .../components/InputComp/index.tsx | 2 +- .../components/SubNav/index.tsx | 2 +- .../components/PageCrvUsdStaking/index.tsx | 10 ++-- .../components/PageCrvUsdStaking/utils.ts | 2 +- .../loan/components/PageDisclaimer/Page.tsx | 4 +- .../loan/components/PageIntegrations/Page.tsx | 10 ++-- .../components/PageIntegrations/index.tsx | 12 ++--- .../LendingMarketsFilters.tsx | 6 +-- .../PageLlamaMarkets/LendingMarketsTable.tsx | 4 +- .../loan/components/PageLlamaMarkets/Page.tsx | 12 ++--- .../PageLlamaMarkets/cells/CompactUsdCell.tsx | 2 +- .../PageLlamaMarkets/cells/LineGraphCell.tsx | 4 +- .../cells/PoolTitleCell/PoolTitleCell.tsx | 8 +-- .../cells/UtilizationCell.tsx | 2 +- .../LoanFormCreate/components/DetailInfo.tsx | 8 +-- .../components/DetailInfoLeverage.tsx | 24 ++++----- .../components/DetailInfoNonLeverage.tsx | 18 +++---- .../DialogHealthLeverageWarning.tsx | 2 +- .../PageLoanCreate/LoanFormCreate/index.tsx | 36 ++++++------- .../loan/components/PageLoanCreate/Page.tsx | 30 +++++------ .../loan/components/PageLoanCreate/index.tsx | 12 ++--- .../loan/components/PageLoanCreate/types.ts | 6 +-- .../loan/components/PageLoanCreate/utils.ts | 6 +-- .../CollateralDecrease/index.tsx | 38 +++++++------- .../CollateralDecrease/types.ts | 4 +- .../CollateralIncrease/index.tsx | 36 ++++++------- .../CollateralIncrease/types.ts | 4 +- .../PageLoanManage/LoanDecrease/index.tsx | 40 +++++++-------- .../PageLoanManage/LoanDecrease/types.ts | 4 +- .../components/LoanDeleverageAlertFull.tsx | 6 +-- .../components/LoanDeleverageAlertPartial.tsx | 6 +-- .../PageLoanManage/LoanDeleverage/index.tsx | 50 +++++++++---------- .../PageLoanManage/LoanDeleverage/types.ts | 4 +- .../PageLoanManage/LoanDeleverage/utils.ts | 4 +- .../PageLoanManage/LoanIncrease/index.tsx | 34 ++++++------- .../PageLoanManage/LoanIncrease/types.ts | 4 +- .../PageLoanManage/LoanLiquidate/index.tsx | 30 +++++------ .../PageLoanManage/LoanLiquidate/types.ts | 2 +- .../PageLoanManage/LoanSwap/index.tsx | 32 ++++++------ .../PageLoanManage/LoanSwap/types.ts | 2 +- .../PageLoanManage/LoanSwap/utils.ts | 4 +- .../loan/components/PageLoanManage/Page.tsx | 32 ++++++------ .../loan/components/PageLoanManage/index.tsx | 20 ++++---- .../loan/components/PageLoanManage/types.ts | 2 +- .../loan/components/PageLoanManage/utils.ts | 6 +-- .../loan/components/PageMarketList/Page.tsx | 30 +++++------ .../components/TableHead/TableHead.tsx | 8 +-- .../components/TableRow/TableRow.tsx | 16 +++--- .../components/TableRow/TableRowMobile.tsx | 16 +++--- .../components/TableRow/TableRowNoResult.tsx | 4 +- .../components/TableRow/TableRowResult.tsx | 14 +++--- .../TableSettings/SelectFilterType.tsx | 8 +-- .../TableSettings/TableSettings.tsx | 6 +-- .../PageMarketList/components/TableStats.tsx | 2 +- .../loan/components/PageMarketList/index.tsx | 22 ++++---- .../loan/components/PageMarketList/types.ts | 4 +- .../loan/components/PageMarketList/utils.ts | 4 +- .../loan/components/PagePegKeepers/Page.tsx | 14 +++--- .../components/PegKeeperContent.tsx | 8 +-- .../components/PegKeeperForm.tsx | 10 ++-- .../components/PegKeeperLabel.tsx | 6 +-- .../loan/components/PagePegKeepers/index.tsx | 8 +-- .../loan/components/PagePegKeepers/utils.ts | 2 +- .../SharedCells/TableCellMarketsTotalDebt.tsx | 4 +- .../components/SharedCells/TableCellRate.tsx | 2 +- .../SharedCells/TableCellTotalCollateral.tsx | 6 +-- .../components/SharedCells/TableCellUser.tsx | 2 +- .../SharedCells/TableCellUtilization.tsx | 2 +- apps/main/src/loan/components/TokenIcon.tsx | 2 +- apps/main/src/loan/components/TokenIcons.tsx | 2 +- apps/main/src/loan/components/TokenLabel.tsx | 8 +-- .../src/loan/hooks/useCollateralAlert.tsx | 2 +- .../loan/hooks/useEstimateGasConversion.tsx | 4 +- apps/main/src/loan/hooks/useLayoutHeight.ts | 4 +- apps/main/src/loan/hooks/usePageOnMount.ts | 16 +++--- .../src/loan/hooks/useSearchTermMapper.tsx | 4 +- apps/main/src/loan/hooks/useTitleMapper.tsx | 2 +- apps/main/src/loan/hooks/useTokenAlert.tsx | 2 +- apps/main/src/loan/layout/Header.tsx | 12 ++--- apps/main/src/loan/layout/Settings.tsx | 2 +- apps/main/src/loan/layout/index.tsx | 14 +++--- apps/main/src/loan/lib/apiCrvusd.ts | 16 +++--- apps/main/src/loan/networks.ts | 4 +- apps/main/src/loan/store/createAppSlice.ts | 10 ++-- apps/main/src/loan/store/createCacheSlice.ts | 6 +-- .../src/loan/store/createChartBandsStore.tsx | 4 +- .../loan/store/createCollateralListSlice.ts | 14 +++--- .../src/loan/store/createCollateralsSlice.ts | 6 +-- apps/main/src/loan/store/createGasSlice.ts | 10 ++-- .../src/loan/store/createIntegrationsSlice.ts | 10 ++-- apps/main/src/loan/store/createLayoutSlice.ts | 6 +-- .../createLoanCollateralDecreaseSlice.ts | 16 +++--- .../createLoanCollateralIncreaseSlice.ts | 14 +++--- .../src/loan/store/createLoanCreateSlice.ts | 20 ++++---- .../src/loan/store/createLoanDecreaseSlice.ts | 14 +++--- .../loan/store/createLoanDeleverageSlice.ts | 14 +++--- .../src/loan/store/createLoanIncreaseSlice.ts | 14 +++--- .../src/loan/store/createLoanLiquidate.ts | 12 ++--- apps/main/src/loan/store/createLoanSwap.ts | 12 ++--- apps/main/src/loan/store/createLoansSlice.ts | 6 +-- .../src/loan/store/createOhlcChartSlice.ts | 6 +-- .../src/loan/store/createPegKeepersSlice.ts | 12 ++--- .../main/src/loan/store/createScrvUsdSlice.ts | 12 ++--- apps/main/src/loan/store/createTokensSlice.ts | 2 +- .../src/loan/store/createUsdRatesSlice.ts | 8 +-- apps/main/src/loan/store/createWalletSlice.ts | 6 +-- apps/main/src/loan/store/useStore.ts | 46 ++++++++--------- apps/main/src/loan/types/loan.types.ts | 4 +- apps/main/src/loan/utils/helpers.ts | 4 +- apps/main/src/loan/utils/storage.ts | 2 +- apps/main/src/loan/utils/utilsCurvejs.ts | 4 +- apps/main/src/loan/utils/utilsGasPrices.ts | 6 +-- apps/main/src/loan/utils/utilsLoan.ts | 2 +- apps/main/src/loan/utils/utilsRouter.ts | 8 +-- apps/main/tsconfig.json | 4 -- 741 files changed, 3278 insertions(+), 3276 deletions(-) diff --git a/apps/main/src/dao/components/Charts/GaugeWeightHistoryChart/index.tsx b/apps/main/src/dao/components/Charts/GaugeWeightHistoryChart/index.tsx index 22d301b70..45cf3d9f1 100644 --- a/apps/main/src/dao/components/Charts/GaugeWeightHistoryChart/index.tsx +++ b/apps/main/src/dao/components/Charts/GaugeWeightHistoryChart/index.tsx @@ -2,11 +2,11 @@ import { useEffect } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import LineChartComponent from '@dao/components/Charts/LineChartComponent' -import ErrorMessage from '@dao/components/ErrorMessage' +import LineChartComponent from '@/dao/components/Charts/LineChartComponent' +import ErrorMessage from '@/dao/components/ErrorMessage' interface GaugeWeightHistoryChartProps { gaugeAddress: string diff --git a/apps/main/src/dao/components/Charts/LineChartComponent.tsx b/apps/main/src/dao/components/Charts/LineChartComponent.tsx index 1844a0dd6..e77e75115 100644 --- a/apps/main/src/dao/components/Charts/LineChartComponent.tsx +++ b/apps/main/src/dao/components/Charts/LineChartComponent.tsx @@ -3,7 +3,7 @@ import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, Responsi import { formatDateFromTimestamp } from '@ui/utils/utilsFormat' import LineChartCustomTooltip from './LineChartCustomTooltip' -import { GaugeWeightHistoryData } from '@dao/types/dao.types' +import { GaugeWeightHistoryData } from '@/dao/types/dao.types' type Props = { data: GaugeWeightHistoryData[] diff --git a/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBox.tsx b/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBox.tsx index baa1d7584..7b57566f1 100644 --- a/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBox.tsx +++ b/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBox.tsx @@ -1,4 +1,4 @@ -import type { ComboBoxSelectGaugeProps } from '@dao/components/ComboBoxSelectGauge/types' +import type { ComboBoxSelectGaugeProps } from '@/dao/components/ComboBoxSelectGauge/types' import React, { useEffect, useRef, useState } from 'react' import { t } from '@lingui/macro' @@ -6,19 +6,19 @@ import chunk from 'lodash/chunk' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { RCEditClear } from '@ui/images' import { StyledInput } from '@ui/InputComp/styles' import Box from '@ui/Box/Box' -import ComboBoxListChunk from '@dao/components/ComboBoxSelectGauge/ComboBoxListChunk' +import ComboBoxListChunk from '@/dao/components/ComboBoxSelectGauge/ComboBoxListChunk' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton/IconButton' import InputProvider from '@ui/InputComp/InputProvider' import Popover from '@ui/Popover/Popover' import Spinner from '@ui/Spinner' import SpinnerWrapper from '@ui/Spinner/SpinnerWrapper' -import { GaugeFormattedData } from '@dao/types/dao.types' +import { GaugeFormattedData } from '@/dao/types/dao.types' const ComboBox = ({ testId, diff --git a/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBoxListChunk.tsx b/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBoxListChunk.tsx index 02618e329..38de7d1e2 100644 --- a/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBoxListChunk.tsx +++ b/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBoxListChunk.tsx @@ -1,12 +1,12 @@ -import type { ComboBoxSelectGaugeProps } from '@dao/components/ComboBoxSelectGauge/types' +import type { ComboBoxSelectGaugeProps } from '@/dao/components/ComboBoxSelectGauge/types' import React, { useRef } from 'react' import styled from 'styled-components' import useIntersectionObserver from 'ui/src/hooks/useIntersectionObserver' -import SelectGaugeListItem from '@dao/components/ComboBoxSelectGauge/ComboBoxListItem' -import { GaugeFormattedData } from '@dao/types/dao.types' +import SelectGaugeListItem from '@/dao/components/ComboBoxSelectGauge/ComboBoxListItem' +import { GaugeFormattedData } from '@/dao/types/dao.types' const SelectGaugeListChunk = ({ testId, diff --git a/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBoxListItem.tsx b/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBoxListItem.tsx index ff4397696..484da45d1 100644 --- a/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBoxListItem.tsx +++ b/apps/main/src/dao/components/ComboBoxSelectGauge/ComboBoxListItem.tsx @@ -1,4 +1,4 @@ -import type { ComboBoxSelectGaugeProps } from '@dao/components/ComboBoxSelectGauge/types' +import type { ComboBoxSelectGaugeProps } from '@/dao/components/ComboBoxSelectGauge/types' import React from 'react' import styled from 'styled-components' @@ -9,7 +9,7 @@ import { shortenTokenAddress } from '@ui/utils' import Box from '@ui/Box' import Button from '@ui/Button' import Chip from '@ui/Typography/Chip' -import { GaugeFormattedData } from '@dao/types/dao.types' +import { GaugeFormattedData } from '@/dao/types/dao.types' const ComboBoxListItem = ({ imageBaseUrl, diff --git a/apps/main/src/dao/components/ComboBoxSelectGauge/index.tsx b/apps/main/src/dao/components/ComboBoxSelectGauge/index.tsx index f33bdd339..79445cb94 100644 --- a/apps/main/src/dao/components/ComboBoxSelectGauge/index.tsx +++ b/apps/main/src/dao/components/ComboBoxSelectGauge/index.tsx @@ -1,4 +1,4 @@ -import type { EndsWith } from '@dao/components/ComboBoxSelectGauge/types' +import type { EndsWith } from '@/dao/components/ComboBoxSelectGauge/types' import Fuse from 'fuse.js' import React, { useCallback, useState } from 'react' @@ -6,14 +6,14 @@ import { useFilter } from 'react-aria' import { useOverlayTriggerState } from 'react-stately' import { t } from '@lingui/macro' -import { delayAction } from '@dao/utils' -import useStore from '@dao/store/useStore' -import networks from '@dao/networks' +import { delayAction } from '@/dao/utils' +import useStore from '@/dao/store/useStore' +import networks from '@/dao/networks' -import ComboBox from '@dao/components/ComboBoxSelectGauge/ComboBox' -import ComboBoxSelectedGaugeButton from '@dao/components/ComboBoxSelectGauge/ComboBoxSelectedGaugeButton' +import ComboBox from '@/dao/components/ComboBoxSelectGauge/ComboBox' +import ComboBoxSelectedGaugeButton from '@/dao/components/ComboBoxSelectGauge/ComboBoxSelectedGaugeButton' import ModalDialog from '@ui/Dialog' -import { GaugeFormattedData } from '@dao/types/dao.types' +import { GaugeFormattedData } from '@/dao/types/dao.types' const ComboBoxGauges = ({ disabled, diff --git a/apps/main/src/dao/components/ComboBoxSelectGauge/types.ts b/apps/main/src/dao/components/ComboBoxSelectGauge/types.ts index 4cb7566d2..ee590d92b 100644 --- a/apps/main/src/dao/components/ComboBoxSelectGauge/types.ts +++ b/apps/main/src/dao/components/ComboBoxSelectGauge/types.ts @@ -1,4 +1,4 @@ -import { GaugeFormattedData } from '@dao/types/dao.types' +import { GaugeFormattedData } from '@/dao/types/dao.types' export type EndsWith = (string: string, substring: string) => boolean diff --git a/apps/main/src/dao/components/ConnectWallet.tsx b/apps/main/src/dao/components/ConnectWallet.tsx index 35522be4f..451e25ed2 100644 --- a/apps/main/src/dao/components/ConnectWallet.tsx +++ b/apps/main/src/dao/components/ConnectWallet.tsx @@ -1,5 +1,5 @@ import { isLoading } from '@ui/utils' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { useUserProfileStore } from '@ui-kit/features/user-profile' import ConnectWalletPrompt from '@ui/ConnectWalletPrompt' diff --git a/apps/main/src/dao/components/CopyIconButton.tsx b/apps/main/src/dao/components/CopyIconButton.tsx index 1530b217e..1acb2f407 100644 --- a/apps/main/src/dao/components/CopyIconButton.tsx +++ b/apps/main/src/dao/components/CopyIconButton.tsx @@ -1,4 +1,4 @@ -import { copyToClipboard } from '@dao/utils' +import { copyToClipboard } from '@/dao/utils' import TooltipButton from '@ui/Tooltip' import Icon from '@ui/Icon' diff --git a/apps/main/src/dao/components/DetailInfoEstGas.tsx b/apps/main/src/dao/components/DetailInfoEstGas.tsx index 06aa6d667..a8e27a87f 100644 --- a/apps/main/src/dao/components/DetailInfoEstGas.tsx +++ b/apps/main/src/dao/components/DetailInfoEstGas.tsx @@ -4,15 +4,15 @@ import isNaN from 'lodash/isNaN' import isUndefined from 'lodash/isUndefined' import styled from 'styled-components' -import { NETWORK_TOKEN } from '@dao/constants' +import { NETWORK_TOKEN } from '@/dao/constants' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { gweiToEther, weiToGwei } from '@ui-kit/utils' -import networks from '@dao/networks' -import useStore from '@dao/store/useStore' +import networks from '@/dao/networks' +import useStore from '@/dao/store/useStore' import DetailInfo from '@ui/DetailInfo' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import { CurveApi, ChainId, EstimatedGas } from '@dao/types/dao.types' +import { CurveApi, ChainId, EstimatedGas } from '@/dao/types/dao.types' export type StepProgress = { active: number diff --git a/apps/main/src/dao/components/InternalLinkButton.tsx b/apps/main/src/dao/components/InternalLinkButton.tsx index edfaca67a..0443436ec 100644 --- a/apps/main/src/dao/components/InternalLinkButton.tsx +++ b/apps/main/src/dao/components/InternalLinkButton.tsx @@ -1,7 +1,7 @@ import styled from 'styled-components' import { useNavigate, useParams } from 'react-router-dom' -import { getPath } from '@dao/utils/utilsRouter' +import { getPath } from '@/dao/utils/utilsRouter' import { InternalLink } from '@ui/Link' import Icon from '@ui/Icon' diff --git a/apps/main/src/dao/components/Page404/Page.tsx b/apps/main/src/dao/components/Page404/Page.tsx index d13521d71..54d2f00d7 100644 --- a/apps/main/src/dao/components/Page404/Page.tsx +++ b/apps/main/src/dao/components/Page404/Page.tsx @@ -1,6 +1,6 @@ import type { NextPage } from 'next' -import DocumentHead from '@dao/layout/DocumentHead' +import DocumentHead from '@/dao/layout/DocumentHead' import Error404 from '@ui/Error404' const Page: NextPage = () => ( diff --git a/apps/main/src/dao/components/PageAnalytics/CrvStats/index.tsx b/apps/main/src/dao/components/PageAnalytics/CrvStats/index.tsx index 8476f51ad..8988d20bc 100644 --- a/apps/main/src/dao/components/PageAnalytics/CrvStats/index.tsx +++ b/apps/main/src/dao/components/PageAnalytics/CrvStats/index.tsx @@ -1,12 +1,12 @@ import { useEffect } from 'react' import styled from 'styled-components' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { formatNumber } from '@ui/utils' import { t } from '@lingui/macro' import Box from '@ui/Box' -import MetricsComp, { MetricsColumnData } from '@dao/components/MetricsComp' +import MetricsComp, { MetricsColumnData } from '@/dao/components/MetricsComp' import Tooltip from '@ui/Tooltip' const CrvStats: React.FC = () => { diff --git a/apps/main/src/dao/components/PageAnalytics/DailyLocksChart/PositiveAndNegativeBarChart.tsx b/apps/main/src/dao/components/PageAnalytics/DailyLocksChart/PositiveAndNegativeBarChart.tsx index 980b14207..ec2eb3537 100644 --- a/apps/main/src/dao/components/PageAnalytics/DailyLocksChart/PositiveAndNegativeBarChart.tsx +++ b/apps/main/src/dao/components/PageAnalytics/DailyLocksChart/PositiveAndNegativeBarChart.tsx @@ -4,7 +4,7 @@ import { BarChart, Bar, Cell, XAxis, YAxis, CartesianGrid, Tooltip, ReferenceLin import { formatNumber } from 'ui/src/utils' import PositiveAndNegativeBarChartTooltip from './PositiveAndNegativeBarChartTooltip' -import { VeCrvDailyLock } from '@dao/types/dao.types' +import { VeCrvDailyLock } from '@/dao/types/dao.types' type PositiveAndNegativeBarChartProps = { data: VeCrvDailyLock[] diff --git a/apps/main/src/dao/components/PageAnalytics/DailyLocksChart/index.tsx b/apps/main/src/dao/components/PageAnalytics/DailyLocksChart/index.tsx index 7091b1927..b4945ba91 100644 --- a/apps/main/src/dao/components/PageAnalytics/DailyLocksChart/index.tsx +++ b/apps/main/src/dao/components/PageAnalytics/DailyLocksChart/index.tsx @@ -2,11 +2,11 @@ import styled from 'styled-components' import { useEffect } from 'react' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Box from '@ui/Box' import Spinner from '../../Spinner' -import ErrorMessage from '@dao/components/ErrorMessage' +import ErrorMessage from '@/dao/components/ErrorMessage' import PositiveAndNegativeBarChart from './PositiveAndNegativeBarChart' const DailyLocks: React.FC = () => { diff --git a/apps/main/src/dao/components/PageAnalytics/HoldersTable/index.tsx b/apps/main/src/dao/components/PageAnalytics/HoldersTable/index.tsx index 5bfabc1fb..0c6ea8785 100644 --- a/apps/main/src/dao/components/PageAnalytics/HoldersTable/index.tsx +++ b/apps/main/src/dao/components/PageAnalytics/HoldersTable/index.tsx @@ -1,15 +1,15 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { shortenTokenAddress, formatNumber, formatDateFromTimestamp, convertToLocaleTimestamp } from '@ui/utils' -import { TOP_HOLDERS } from '@dao/constants' +import { TOP_HOLDERS } from '@/dao/constants' -import PaginatedTable, { Column } from '@dao/components/PaginatedTable' -import { TableRowWrapper, TableData, TableDataLink } from '@dao/components/PaginatedTable/TableRow' +import PaginatedTable, { Column } from '@/dao/components/PaginatedTable' +import { TableRowWrapper, TableData, TableDataLink } from '@/dao/components/PaginatedTable/TableRow' import Box from '@ui/Box' -import { VeCrvHolder, AllHoldersSortBy } from '@dao/types/dao.types' +import { VeCrvHolder, AllHoldersSortBy } from '@/dao/types/dao.types' const TopHoldersTable: React.FC = () => { const { veCrvHolders, allHoldersSortBy, setAllHoldersSortBy, getVeCrvHolders } = useStore((state) => state.analytics) diff --git a/apps/main/src/dao/components/PageAnalytics/Page.tsx b/apps/main/src/dao/components/PageAnalytics/Page.tsx index 09606f34a..dde70a80a 100644 --- a/apps/main/src/dao/components/PageAnalytics/Page.tsx +++ b/apps/main/src/dao/components/PageAnalytics/Page.tsx @@ -5,11 +5,11 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import { scrollToTop } from '@dao/utils' -import usePageOnMount from '@dao/hooks/usePageOnMount' +import { scrollToTop } from '@/dao/utils' +import usePageOnMount from '@/dao/hooks/usePageOnMount' -import Analytics from '@dao/components/PageAnalytics/index' -import DocumentHead from '@dao/layout/DocumentHead' +import Analytics from '@/dao/components/PageAnalytics/index' +import DocumentHead from '@/dao/layout/DocumentHead' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/dao/components/PageAnalytics/TopHoldersChart/TopHoldersBarChartComponent.tsx b/apps/main/src/dao/components/PageAnalytics/TopHoldersChart/TopHoldersBarChartComponent.tsx index 499a3b7a2..44bf2983a 100644 --- a/apps/main/src/dao/components/PageAnalytics/TopHoldersChart/TopHoldersBarChartComponent.tsx +++ b/apps/main/src/dao/components/PageAnalytics/TopHoldersChart/TopHoldersBarChartComponent.tsx @@ -2,10 +2,10 @@ import styled from 'styled-components' import { BarChart, Bar, Cell, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts' import { shortenTokenAddress, formatNumber } from '@ui/utils' -import { TOP_HOLDERS } from '@dao/constants' +import { TOP_HOLDERS } from '@/dao/constants' import CustomTooltip from './TopHoldersBarChartTooltip' -import { VeCrvHolder, TopHoldersSortBy } from '@dao/types/dao.types' +import { VeCrvHolder, TopHoldersSortBy } from '@/dao/types/dao.types' type TopHoldersBarChartProps = { data: VeCrvHolder[] diff --git a/apps/main/src/dao/components/PageAnalytics/TopHoldersChart/index.tsx b/apps/main/src/dao/components/PageAnalytics/TopHoldersChart/index.tsx index ef76541e6..f41547fa8 100644 --- a/apps/main/src/dao/components/PageAnalytics/TopHoldersChart/index.tsx +++ b/apps/main/src/dao/components/PageAnalytics/TopHoldersChart/index.tsx @@ -2,15 +2,15 @@ import styled from 'styled-components' import { useMemo } from 'react' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' -import { TOP_HOLDERS_FILTERS } from '@dao/components/PageAnalytics/constants' +import useStore from '@/dao/store/useStore' +import { TOP_HOLDERS_FILTERS } from '@/dao/components/PageAnalytics/constants' import Box from '@ui/Box' import Spinner from '../../Spinner' import SelectSortingMethod from '@ui/Select/SelectSortingMethod' -import ErrorMessage from '@dao/components/ErrorMessage' -import TopHoldersBarChartComponent from '@dao/components/PageAnalytics/TopHoldersChart/TopHoldersBarChartComponent' -import { VeCrvHolder, TopHoldersSortBy } from '@dao/types/dao.types' +import ErrorMessage from '@/dao/components/ErrorMessage' +import TopHoldersBarChartComponent from '@/dao/components/PageAnalytics/TopHoldersChart/TopHoldersBarChartComponent' +import { VeCrvHolder, TopHoldersSortBy } from '@/dao/types/dao.types' const TopLockers: React.FC = () => { const { getVeCrvHolders, veCrvHolders, topHoldersSortBy, setTopHoldersSortBy, veCrvData } = useStore( diff --git a/apps/main/src/dao/components/PageAnalytics/VeCrvFeesChart/FeesBarChart.tsx b/apps/main/src/dao/components/PageAnalytics/VeCrvFeesChart/FeesBarChart.tsx index f06a8b85b..a1999557d 100644 --- a/apps/main/src/dao/components/PageAnalytics/VeCrvFeesChart/FeesBarChart.tsx +++ b/apps/main/src/dao/components/PageAnalytics/VeCrvFeesChart/FeesBarChart.tsx @@ -4,7 +4,7 @@ import { BarChart, Bar, Cell, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveCo import { formatNumber } from 'ui/src/utils' import FeesBarChartTooltip from './FeesBarChartTooltip' -import { VeCrvFee } from '@dao/types/dao.types' +import { VeCrvFee } from '@/dao/types/dao.types' type FeesBarChartProps = { data: VeCrvFee[] diff --git a/apps/main/src/dao/components/PageAnalytics/VeCrvFeesChart/index.tsx b/apps/main/src/dao/components/PageAnalytics/VeCrvFeesChart/index.tsx index 0d00298ab..dd9f3c924 100644 --- a/apps/main/src/dao/components/PageAnalytics/VeCrvFeesChart/index.tsx +++ b/apps/main/src/dao/components/PageAnalytics/VeCrvFeesChart/index.tsx @@ -2,11 +2,11 @@ import styled from 'styled-components' import { useMemo } from 'react' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Box from '@ui/Box' import Spinner from '../../Spinner' -import ErrorMessage from '@dao/components/ErrorMessage' +import ErrorMessage from '@/dao/components/ErrorMessage' import FeesBarChart from './FeesBarChart' const VeCrvFeesChart: React.FC = () => { diff --git a/apps/main/src/dao/components/PageAnalytics/VeCrvFeesTable/index.tsx b/apps/main/src/dao/components/PageAnalytics/VeCrvFeesTable/index.tsx index ba824ab60..212e1e2d3 100644 --- a/apps/main/src/dao/components/PageAnalytics/VeCrvFeesTable/index.tsx +++ b/apps/main/src/dao/components/PageAnalytics/VeCrvFeesTable/index.tsx @@ -2,12 +2,12 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useEffect } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { formatNumber, convertToLocaleTimestamp } from '@ui/utils' import Box from '@ui/Box' import Spinner from '../../Spinner' -import ErrorMessage from '@dao/components/ErrorMessage' +import ErrorMessage from '@/dao/components/ErrorMessage' import VeCrvFeesChart from '../VeCrvFeesChart' const VeCrcFees: React.FC = () => { diff --git a/apps/main/src/dao/components/PageAnalytics/constants.ts b/apps/main/src/dao/components/PageAnalytics/constants.ts index 46c889591..0c9c94b36 100644 --- a/apps/main/src/dao/components/PageAnalytics/constants.ts +++ b/apps/main/src/dao/components/PageAnalytics/constants.ts @@ -1,4 +1,4 @@ -import { TopHoldersSortBy } from '@dao/types/dao.types' +import { TopHoldersSortBy } from '@/dao/types/dao.types' export const TOP_HOLDERS_FILTERS: { key: TopHoldersSortBy; label: string }[] = [ { key: 'weight_ratio', label: '% veCRV' }, diff --git a/apps/main/src/dao/components/PageAnalytics/index.tsx b/apps/main/src/dao/components/PageAnalytics/index.tsx index 954883806..8f4277fe0 100644 --- a/apps/main/src/dao/components/PageAnalytics/index.tsx +++ b/apps/main/src/dao/components/PageAnalytics/index.tsx @@ -1,10 +1,10 @@ -import { SubNavItem } from '@dao/components/SubNav/types' +import { SubNavItem } from '@/dao/components/SubNav/types' import { useState, useEffect } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import CrvStats from './CrvStats' import VeCrvFees from './VeCrvFeesTable' diff --git a/apps/main/src/dao/components/PageDisclaimer/Page.tsx b/apps/main/src/dao/components/PageDisclaimer/Page.tsx index 33be6cfb2..056c431d8 100644 --- a/apps/main/src/dao/components/PageDisclaimer/Page.tsx +++ b/apps/main/src/dao/components/PageDisclaimer/Page.tsx @@ -4,8 +4,8 @@ import { t } from '@lingui/macro' import Stack from '@mui/material/Stack' -import DocumentHead from '@dao/layout/DocumentHead' -import { scrollToTop } from '@dao/utils' +import DocumentHead from '@/dao/layout/DocumentHead' +import { scrollToTop } from '@/dao/utils' import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' import { Disclaimer } from '@ui-kit/widgets/Disclaimer' diff --git a/apps/main/src/dao/components/PageGauge/GaugeHeader/index.tsx b/apps/main/src/dao/components/PageGauge/GaugeHeader/index.tsx index 1d6b3d107..f1f024c13 100644 --- a/apps/main/src/dao/components/PageGauge/GaugeHeader/index.tsx +++ b/apps/main/src/dao/components/PageGauge/GaugeHeader/index.tsx @@ -2,13 +2,13 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useMemo } from 'react' -import networks from '@dao/networks' +import networks from '@/dao/networks' import Box from '@ui/Box' import Loader from '@ui/Loader' -import SmallLabel from '@dao/components/SmallLabel' -import TokenIcons from '@dao/components/TokenIcons' -import { GaugeFormattedData } from '@dao/types/dao.types' +import SmallLabel from '@/dao/components/SmallLabel' +import TokenIcons from '@/dao/components/TokenIcons' +import { GaugeFormattedData } from '@/dao/types/dao.types' interface GaugeHeaderProps { gaugeData: GaugeFormattedData | undefined diff --git a/apps/main/src/dao/components/PageGauge/GaugeMetrics/index.tsx b/apps/main/src/dao/components/PageGauge/GaugeMetrics/index.tsx index bbeafdcb3..28409c2ae 100644 --- a/apps/main/src/dao/components/PageGauge/GaugeMetrics/index.tsx +++ b/apps/main/src/dao/components/PageGauge/GaugeMetrics/index.tsx @@ -2,14 +2,14 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { formatNumber, convertToLocaleTimestamp, formatDateFromTimestamp, shortenTokenAddress } from '@ui/utils/' -import networks from '@dao/networks' -import useStore from '@dao/store/useStore' +import networks from '@/dao/networks' +import useStore from '@/dao/store/useStore' -import MetricsComp, { MetricsColumnData } from '@dao/components/MetricsComp' +import MetricsComp, { MetricsColumnData } from '@/dao/components/MetricsComp' import Box from '@ui/Box' -import CopyIconButton from '@dao/components/CopyIconButton' -import ExternalLinkIconButton from '@dao/components/ExternalLinkIconButton' -import { GaugeFormattedData } from '@dao/types/dao.types' +import CopyIconButton from '@/dao/components/CopyIconButton' +import ExternalLinkIconButton from '@/dao/components/ExternalLinkIconButton' +import { GaugeFormattedData } from '@/dao/types/dao.types' interface GaugeMetricsProps { gaugeData: GaugeFormattedData | undefined diff --git a/apps/main/src/dao/components/PageGauge/GaugeVotesTable/constants.ts b/apps/main/src/dao/components/PageGauge/GaugeVotesTable/constants.ts index eb72902c6..927b0c3c4 100644 --- a/apps/main/src/dao/components/PageGauge/GaugeVotesTable/constants.ts +++ b/apps/main/src/dao/components/PageGauge/GaugeVotesTable/constants.ts @@ -1,5 +1,5 @@ -import { Column } from '@dao/components/PaginatedTable' -import { GaugeVote } from '@dao/types/dao.types' +import { Column } from '@/dao/components/PaginatedTable' +import { GaugeVote } from '@/dao/types/dao.types' export const GAUGE_VOTES_TABLE_LABELS: Column[] = [ { key: 'timestamp', label: 'Date' }, diff --git a/apps/main/src/dao/components/PageGauge/GaugeVotesTable/index.tsx b/apps/main/src/dao/components/PageGauge/GaugeVotesTable/index.tsx index fff9d4261..c020f348c 100644 --- a/apps/main/src/dao/components/PageGauge/GaugeVotesTable/index.tsx +++ b/apps/main/src/dao/components/PageGauge/GaugeVotesTable/index.tsx @@ -2,16 +2,16 @@ import { useEffect } from 'react' import { t } from '@lingui/macro' import { useNavigate } from 'react-router-dom' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { GAUGE_VOTES_TABLE_LABELS } from './constants' -import { TOP_HOLDERS } from '@dao/constants' +import { TOP_HOLDERS } from '@/dao/constants' import { formatNumber, formatDateFromTimestamp, convertToLocaleTimestamp, shortenTokenAddress } from '@ui/utils/' -import PaginatedTable from '@dao/components/PaginatedTable' -import { TableRowWrapper, TableData, TableDataLink } from '@dao/components/PaginatedTable/TableRow' -import { GaugeVote, GaugeVotesSortBy } from '@dao/types/dao.types' +import PaginatedTable from '@/dao/components/PaginatedTable' +import { TableRowWrapper, TableData, TableDataLink } from '@/dao/components/PaginatedTable/TableRow' +import { GaugeVote, GaugeVotesSortBy } from '@/dao/types/dao.types' interface GaugeVotesTableProps { gaugeAddress: string diff --git a/apps/main/src/dao/components/PageGauge/Page.tsx b/apps/main/src/dao/components/PageGauge/Page.tsx index c50b8d4d8..72f819adb 100644 --- a/apps/main/src/dao/components/PageGauge/Page.tsx +++ b/apps/main/src/dao/components/PageGauge/Page.tsx @@ -6,11 +6,11 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import { scrollToTop } from '@dao/utils' -import usePageOnMount from '@dao/hooks/usePageOnMount' +import { scrollToTop } from '@/dao/utils' +import usePageOnMount from '@/dao/hooks/usePageOnMount' -import Gauge from '@dao/components/PageGauge/index' -import DocumentHead from '@dao/layout/DocumentHead' +import Gauge from '@/dao/components/PageGauge/index' +import DocumentHead from '@/dao/layout/DocumentHead' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/dao/components/PageGauge/index.tsx b/apps/main/src/dao/components/PageGauge/index.tsx index ef927cacd..ff12399ab 100644 --- a/apps/main/src/dao/components/PageGauge/index.tsx +++ b/apps/main/src/dao/components/PageGauge/index.tsx @@ -1,9 +1,9 @@ import styled from 'styled-components' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Box from '@ui/Box' -import GaugeWeightHistoryChart from '@dao/components/Charts/GaugeWeightHistoryChart' +import GaugeWeightHistoryChart from '@/dao/components/Charts/GaugeWeightHistoryChart' import GaugeHeader from './GaugeHeader' import GaugeMetrics from './GaugeMetrics' import GaugeVotesTable from './GaugeVotesTable' diff --git a/apps/main/src/dao/components/PageGauges/GaugeList/index.tsx b/apps/main/src/dao/components/PageGauges/GaugeList/index.tsx index 723eef170..9e0eda9ea 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeList/index.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeList/index.tsx @@ -2,18 +2,18 @@ import styled from 'styled-components' import React, { useEffect, useCallback } from 'react' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { GAUGE_VOTES_TABLE_LABELS, GAUGE_VOTES_SORTING_METHODS } from '../constants' import SearchInput from '@ui/SearchInput' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import SelectSortingMethod from '@ui/Select/SelectSortingMethod' -import GaugeListItem from '@dao/components/PageGauges/GaugeListItem' -import ErrorMessage from '@dao/components/ErrorMessage' -import PaginatedTable from '@dao/components/PaginatedTable' -import SmallScreenCard from '@dao/components/PageGauges/GaugeListItem/SmallScreenCard' -import { GaugeFormattedData, SortByFilterGaugesKeys } from '@dao/types/dao.types' +import GaugeListItem from '@/dao/components/PageGauges/GaugeListItem' +import ErrorMessage from '@/dao/components/ErrorMessage' +import PaginatedTable from '@/dao/components/PaginatedTable' +import SmallScreenCard from '@/dao/components/PageGauges/GaugeListItem/SmallScreenCard' +import { GaugeFormattedData, SortByFilterGaugesKeys } from '@/dao/types/dao.types' const GaugesList = () => { const { diff --git a/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeDetails.tsx b/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeDetails.tsx index 9720669a1..733c36578 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeDetails.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeDetails.tsx @@ -3,13 +3,13 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { shortenTokenAddress, formatNumber, convertToLocaleTimestamp } from '@ui/utils' -import networks from '@dao/networks' +import networks from '@/dao/networks' import Box from '@ui/Box' -import ExternalLinkIconButton from '@dao/components/ExternalLinkIconButton' -import CopyIconButton from '@dao/components/CopyIconButton' +import ExternalLinkIconButton from '@/dao/components/ExternalLinkIconButton' +import CopyIconButton from '@/dao/components/CopyIconButton' import { ExternalLink } from '@ui/Link' -import { GaugeFormattedData } from '@dao/types/dao.types' +import { GaugeFormattedData } from '@/dao/types/dao.types' const GaugeDetails = ({ gaugeData, className }: { gaugeData: GaugeFormattedData; className?: string }) => ( diff --git a/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeDetailsSm.tsx b/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeDetailsSm.tsx index d817d7d7c..809fcbeb9 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeDetailsSm.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeDetailsSm.tsx @@ -3,11 +3,11 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { shortenTokenAddress, formatNumber, convertToLocaleTimestamp } from '@ui/utils' -import networks from '@dao/networks' +import networks from '@/dao/networks' import { ExternalLink } from '@ui/Link' import Box from '@ui/Box' -import { GaugeFormattedData, UserGaugeVoteWeight } from '@dao/types/dao.types' +import { GaugeFormattedData, UserGaugeVoteWeight } from '@/dao/types/dao.types' type GaugeDetailsSmProps = { gaugeData: GaugeFormattedData diff --git a/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeListColumns.tsx b/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeListColumns.tsx index 529acb13b..c2347733a 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeListColumns.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeListColumns.tsx @@ -3,8 +3,8 @@ import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import useStore from '@dao/store/useStore' -import { GaugeFormattedData } from '@dao/types/dao.types' +import useStore from '@/dao/store/useStore' +import { GaugeFormattedData } from '@/dao/types/dao.types' type GaugeListColumnsProps = { gaugeData: GaugeFormattedData diff --git a/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeWeightVotesColumns.tsx b/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeWeightVotesColumns.tsx index 36c376936..2cb2fe4c5 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeWeightVotesColumns.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeListItem/GaugeWeightVotesColumns.tsx @@ -4,11 +4,11 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils/' import { calculateStaleVeCrvPercentage } from './utils' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Tooltip from '@ui/Tooltip' import Box from '@ui/Box' -import { UserGaugeVoteWeight } from '@dao/types/dao.types' +import { UserGaugeVoteWeight } from '@/dao/types/dao.types' type GaugeWeightVotesColumnsProps = { userGaugeWeightVoteData: UserGaugeVoteWeight diff --git a/apps/main/src/dao/components/PageGauges/GaugeListItem/SmallScreenCard.tsx b/apps/main/src/dao/components/PageGauges/GaugeListItem/SmallScreenCard.tsx index 829acddbe..2458f486c 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeListItem/SmallScreenCard.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeListItem/SmallScreenCard.tsx @@ -2,21 +2,21 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useState, useEffect } from 'react' -import networks from '@dao/networks' -import useStore from '@dao/store/useStore' +import networks from '@/dao/networks' +import useStore from '@/dao/store/useStore' import IconButton from '@ui/IconButton' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import Icon from '@ui/Icon' import Box from '@ui/Box' -import ErrorMessage from '@dao/components/ErrorMessage' -import InternalLinkButton from '@dao/components/InternalLinkButton' +import ErrorMessage from '@/dao/components/ErrorMessage' +import InternalLinkButton from '@/dao/components/InternalLinkButton' -import LineChartComponent from '@dao/components/Charts/LineChartComponent' +import LineChartComponent from '@/dao/components/Charts/LineChartComponent' import TitleComp from './TitleComp' import VoteGaugeField from '../GaugeVoting/VoteGaugeField' import GaugeDetailsSm from './GaugeDetailsSm' -import { GaugeFormattedData, UserGaugeVoteWeight } from '@dao/types/dao.types' +import { GaugeFormattedData, UserGaugeVoteWeight } from '@/dao/types/dao.types' type Props = { gaugeData: GaugeFormattedData diff --git a/apps/main/src/dao/components/PageGauges/GaugeListItem/TitleComp.tsx b/apps/main/src/dao/components/PageGauges/GaugeListItem/TitleComp.tsx index b89d6e933..b430ba1a2 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeListItem/TitleComp.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeListItem/TitleComp.tsx @@ -3,13 +3,13 @@ import { t } from '@lingui/macro' import { useMemo } from 'react' import { shortenTokenAddress } from '@ui/utils' -import networks from '@dao/networks' +import networks from '@/dao/networks' import Box from '@ui/Box' -import TokenIcons from '@dao/components/TokenIcons' -import SmallLabel from '@dao/components/SmallLabel' -import CopyIconButton from '@dao/components/CopyIconButton' -import ExternalLinkIconButton from '@dao/components/ExternalLinkIconButton' -import { GaugeFormattedData } from '@dao/types/dao.types' +import TokenIcons from '@/dao/components/TokenIcons' +import SmallLabel from '@/dao/components/SmallLabel' +import CopyIconButton from '@/dao/components/CopyIconButton' +import ExternalLinkIconButton from '@/dao/components/ExternalLinkIconButton' +import { GaugeFormattedData } from '@/dao/types/dao.types' interface TitleCompProps { gaugeData: GaugeFormattedData diff --git a/apps/main/src/dao/components/PageGauges/GaugeListItem/index.tsx b/apps/main/src/dao/components/PageGauges/GaugeListItem/index.tsx index ba473758d..5a6c61024 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeListItem/index.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeListItem/index.tsx @@ -2,25 +2,25 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useState, useEffect } from 'react' -import networks from '@dao/networks' -import useStore from '@dao/store/useStore' +import networks from '@/dao/networks' +import useStore from '@/dao/store/useStore' import Box from '@ui/Box' import IconButton from '@ui/IconButton' import Icon from '@ui/Icon' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import ErrorMessage from '@dao/components/ErrorMessage' -import InternalLinkButton from '@dao/components/InternalLinkButton' -import ExternalLinkIconButton from '@dao/components/ExternalLinkIconButton' +import ErrorMessage from '@/dao/components/ErrorMessage' +import InternalLinkButton from '@/dao/components/InternalLinkButton' +import ExternalLinkIconButton from '@/dao/components/ExternalLinkIconButton' import Button from '@ui/Button' -import LineChartComponent from '@dao/components/Charts/LineChartComponent' -import TitleComp from '@dao/components/PageGauges/GaugeListItem/TitleComp' -import GaugeListColumns from '@dao/components/PageGauges/GaugeListItem/GaugeListColumns' -import GaugeWeightVotesColumns from '@dao/components/PageGauges/GaugeListItem/GaugeWeightVotesColumns' -import VoteGaugeField from '@dao/components/PageGauges/GaugeVoting/VoteGaugeField' -import GaugeDetails from '@dao/components/PageGauges/GaugeListItem/GaugeDetails' -import { GaugeFormattedData, UserGaugeVoteWeight } from '@dao/types/dao.types' +import LineChartComponent from '@/dao/components/Charts/LineChartComponent' +import TitleComp from '@/dao/components/PageGauges/GaugeListItem/TitleComp' +import GaugeListColumns from '@/dao/components/PageGauges/GaugeListItem/GaugeListColumns' +import GaugeWeightVotesColumns from '@/dao/components/PageGauges/GaugeListItem/GaugeWeightVotesColumns' +import VoteGaugeField from '@/dao/components/PageGauges/GaugeVoting/VoteGaugeField' +import GaugeDetails from '@/dao/components/PageGauges/GaugeListItem/GaugeDetails' +import { GaugeFormattedData, UserGaugeVoteWeight } from '@/dao/types/dao.types' type Props = { gaugeData: GaugeFormattedData diff --git a/apps/main/src/dao/components/PageGauges/GaugeVoting/CurrentVotes.tsx b/apps/main/src/dao/components/PageGauges/GaugeVoting/CurrentVotes.tsx index 3a8c51d6b..0eb999b76 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeVoting/CurrentVotes.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeVoting/CurrentVotes.tsx @@ -3,18 +3,18 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useEffect } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' -import networks from '@dao/networks' +import networks from '@/dao/networks' import { USER_VOTES_TABLE_LABELS } from './constants' import Box from '@ui/Box' -import PaginatedTable from '@dao/components/PaginatedTable' -import VoteGauge from '@dao/components/PageGauges/GaugeVoting/VoteGauge' -import GaugeListItem from '@dao/components/PageGauges/GaugeListItem' -import SmallScreenCard from '@dao/components/PageGauges/GaugeListItem/SmallScreenCard' -import GaugeVotingStats from '@dao/components/PageGauges/GaugeVoting/GaugeVotingStats' -import { GaugeFormattedData, UserGaugeVoteWeight, UserGaugeVoteWeightSortBy } from '@dao/types/dao.types' +import PaginatedTable from '@/dao/components/PaginatedTable' +import VoteGauge from '@/dao/components/PageGauges/GaugeVoting/VoteGauge' +import GaugeListItem from '@/dao/components/PageGauges/GaugeListItem' +import SmallScreenCard from '@/dao/components/PageGauges/GaugeListItem/SmallScreenCard' +import GaugeVotingStats from '@/dao/components/PageGauges/GaugeVoting/GaugeVotingStats' +import { GaugeFormattedData, UserGaugeVoteWeight, UserGaugeVoteWeightSortBy } from '@/dao/types/dao.types' type CurrentVotesProps = { userAddress: string | undefined diff --git a/apps/main/src/dao/components/PageGauges/GaugeVoting/GaugeVotingStats.tsx b/apps/main/src/dao/components/PageGauges/GaugeVoting/GaugeVotingStats.tsx index d3576fdaf..d308dc39c 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeVoting/GaugeVotingStats.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeVoting/GaugeVotingStats.tsx @@ -1,13 +1,13 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { formatNumber, shortenTokenAddress } from '@ui/utils' import { calculateUserPowerStale } from './utils' import Box from '@ui/Box' -import MetricsComp, { MetricsColumnData } from '@dao/components/MetricsComp' -import ComboBoxSelectGauge from '@dao/components/ComboBoxSelectGauge' +import MetricsComp, { MetricsColumnData } from '@/dao/components/MetricsComp' +import ComboBoxSelectGauge from '@/dao/components/ComboBoxSelectGauge' import InternalLink from '@ui/Link/InternalLink' import AlertBox from '@ui/AlertBox' diff --git a/apps/main/src/dao/components/PageGauges/GaugeVoting/VoteGauge/index.tsx b/apps/main/src/dao/components/PageGauges/GaugeVoting/VoteGauge/index.tsx index c4689ce8c..35f449938 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeVoting/VoteGauge/index.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeVoting/VoteGauge/index.tsx @@ -2,7 +2,7 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useState } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Box from '@ui/Box' import IconButton from '@ui/IconButton' @@ -10,7 +10,7 @@ import Icon from '@ui/Icon' import VoteGaugeField from '../VoteGaugeField' import TitleComp from '../../GaugeListItem/TitleComp' import GaugeDetails from '../../GaugeListItem/GaugeDetails' -import { GaugeFormattedData, UserGaugeVoteWeight } from '@dao/types/dao.types' +import { GaugeFormattedData, UserGaugeVoteWeight } from '@/dao/types/dao.types' type VoteGaugeProps = { imageBaseUrl: string diff --git a/apps/main/src/dao/components/PageGauges/GaugeVoting/VoteGaugeField/index.tsx b/apps/main/src/dao/components/PageGauges/GaugeVoting/VoteGaugeField/index.tsx index 6a4d0ed3d..5ce9a8a17 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeVoting/VoteGaugeField/index.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeVoting/VoteGaugeField/index.tsx @@ -2,15 +2,15 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useState } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { convertToLocaleTimestamp, formatNumber } from '@ui/utils' import Button from '@ui/Button' import NumberField from './NumberField' -import MetricsComp, { MetricsColumnData } from '@dao/components/MetricsComp' +import MetricsComp, { MetricsColumnData } from '@/dao/components/MetricsComp' import Box from '@ui/Box' import { TooltipIcon } from '@ui/Tooltip' -import { UserGaugeVoteWeight } from '@dao/types/dao.types' +import { UserGaugeVoteWeight } from '@/dao/types/dao.types' type VoteGaugeFieldProps = { powerUsed: number diff --git a/apps/main/src/dao/components/PageGauges/GaugeVoting/constants.ts b/apps/main/src/dao/components/PageGauges/GaugeVoting/constants.ts index 82ad28e73..c1bcecbd0 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeVoting/constants.ts +++ b/apps/main/src/dao/components/PageGauges/GaugeVoting/constants.ts @@ -1,5 +1,5 @@ -import { Column } from '@dao/components/PaginatedTable' -import { UserGaugeVoteWeight } from '@dao/types/dao.types' +import { Column } from '@/dao/components/PaginatedTable' +import { UserGaugeVoteWeight } from '@/dao/types/dao.types' export const USER_VOTES_TABLE_LABELS: Column[] = [ { key: 'title', label: 'Gauge', disabled: true }, diff --git a/apps/main/src/dao/components/PageGauges/GaugeVoting/index.tsx b/apps/main/src/dao/components/PageGauges/GaugeVoting/index.tsx index 0236d2711..174fe04d1 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeVoting/index.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeVoting/index.tsx @@ -1,10 +1,10 @@ import styled from 'styled-components' import { useEffect } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import CurrentVotes from './CurrentVotes' -import ConnectWallet from '@dao/components/ConnectWallet' +import ConnectWallet from '@/dao/components/ConnectWallet' const GaugeVoting = ({ userAddress }: { userAddress: string | undefined }) => { const { getUserGaugeVoteWeights, userGaugeVoteWeightsMapper } = useStore((state) => state.user) diff --git a/apps/main/src/dao/components/PageGauges/GaugeWeightDistribution/index.tsx b/apps/main/src/dao/components/PageGauges/GaugeWeightDistribution/index.tsx index 118553654..b52f4574c 100644 --- a/apps/main/src/dao/components/PageGauges/GaugeWeightDistribution/index.tsx +++ b/apps/main/src/dao/components/PageGauges/GaugeWeightDistribution/index.tsx @@ -2,15 +2,15 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useMemo } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import BarChartComponent from '../../Charts/BarChartComponent' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import ErrorMessage from '@dao/components/ErrorMessage' +import ErrorMessage from '@/dao/components/ErrorMessage' import Box from '@ui/Box' import GaugeVotingCustomTooltip from '../../Charts/GaugeVotingBarChartCustomTooltip' import GaugesCustomTooltip from '../../Charts/GaugesBarChartCustomTooltip' -import { GaugeFormattedData, UserGaugeVoteWeight } from '@dao/types/dao.types' +import { GaugeFormattedData, UserGaugeVoteWeight } from '@/dao/types/dao.types' type GaugeWeightDistributionProps = { isUserVotes: boolean diff --git a/apps/main/src/dao/components/PageGauges/Page.tsx b/apps/main/src/dao/components/PageGauges/Page.tsx index 913c0f5ce..2c0b65341 100644 --- a/apps/main/src/dao/components/PageGauges/Page.tsx +++ b/apps/main/src/dao/components/PageGauges/Page.tsx @@ -5,12 +5,12 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import { scrollToTop } from '@dao/utils' -import usePageOnMount from '@dao/hooks/usePageOnMount' +import { scrollToTop } from '@/dao/utils' +import usePageOnMount from '@/dao/hooks/usePageOnMount' -import Gauges from '@dao/components/PageGauges/index' -import DocumentHead from '@dao/layout/DocumentHead' -import Settings from '@dao/layout/Settings' +import Gauges from '@/dao/components/PageGauges/index' +import DocumentHead from '@/dao/layout/DocumentHead' +import Settings from '@/dao/layout/Settings' import Spinner, { SpinnerWrapper } from '@ui/Spinner' const Page: NextPage = () => { diff --git a/apps/main/src/dao/components/PageGauges/constants.ts b/apps/main/src/dao/components/PageGauges/constants.ts index 10c605d1f..8fd10a315 100644 --- a/apps/main/src/dao/components/PageGauges/constants.ts +++ b/apps/main/src/dao/components/PageGauges/constants.ts @@ -1,5 +1,5 @@ -import { Column } from '@dao/components/PaginatedTable' -import { GaugeFormattedData } from '@dao/types/dao.types' +import { Column } from '@/dao/components/PaginatedTable' +import { GaugeFormattedData } from '@/dao/types/dao.types' export const GAUGE_VOTES_TABLE_LABELS: Column[] = [ { key: 'title', label: 'Gauge', disabled: true }, diff --git a/apps/main/src/dao/components/PageGauges/index.tsx b/apps/main/src/dao/components/PageGauges/index.tsx index 506f97563..cd6672262 100644 --- a/apps/main/src/dao/components/PageGauges/index.tsx +++ b/apps/main/src/dao/components/PageGauges/index.tsx @@ -1,10 +1,10 @@ -import { SubNavItem } from '@dao/components/SubNav/types' +import { SubNavItem } from '@/dao/components/SubNav/types' import styled from 'styled-components' import { useState, useEffect } from 'react' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { useConnectWallet } from '@ui-kit/features/connect-wallet' import Box from '@ui/Box' @@ -12,7 +12,7 @@ import Box from '@ui/Box' import GaugesList from './GaugeList' import GaugeWeightDistribution from './GaugeWeightDistribution' import GaugeVoting from './GaugeVoting' -import SubNav from '@dao/components/SubNav' +import SubNav from '@/dao/components/SubNav' const Gauges = () => { const { isMdUp } = useStore((state) => state.layout) diff --git a/apps/main/src/dao/components/PageProposal/Page.tsx b/apps/main/src/dao/components/PageProposal/Page.tsx index 4f5a4b562..0dee39764 100644 --- a/apps/main/src/dao/components/PageProposal/Page.tsx +++ b/apps/main/src/dao/components/PageProposal/Page.tsx @@ -5,11 +5,11 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import { scrollToTop } from '@dao/utils' -import usePageOnMount from '@dao/hooks/usePageOnMount' +import { scrollToTop } from '@/dao/utils' +import usePageOnMount from '@/dao/hooks/usePageOnMount' -import Proposal from '@dao/components/PageProposal/index' -import DocumentHead from '@dao/layout/DocumentHead' +import Proposal from '@/dao/components/PageProposal/index' +import DocumentHead from '@/dao/layout/DocumentHead' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/dao/components/PageProposal/ProposalHeader/index.tsx b/apps/main/src/dao/components/PageProposal/ProposalHeader/index.tsx index 9207cc8bd..e09b1d59d 100644 --- a/apps/main/src/dao/components/PageProposal/ProposalHeader/index.tsx +++ b/apps/main/src/dao/components/PageProposal/ProposalHeader/index.tsx @@ -1,10 +1,10 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import SmallLabel from '@dao/components/SmallLabel' -import MetricsComp, { MetricsColumnData } from '@dao/components/MetricsComp' -import VoteCountdown from '@dao/components/VoteCountdown' -import { ProposalData } from '@dao/types/dao.types' +import SmallLabel from '@/dao/components/SmallLabel' +import MetricsComp, { MetricsColumnData } from '@/dao/components/MetricsComp' +import VoteCountdown from '@/dao/components/VoteCountdown' +import { ProposalData } from '@/dao/types/dao.types' type ProposalHeaderProps = { proposal: ProposalData diff --git a/apps/main/src/dao/components/PageProposal/ProposalInformation/index.tsx b/apps/main/src/dao/components/PageProposal/ProposalInformation/index.tsx index ad380a0e2..e33d9702f 100644 --- a/apps/main/src/dao/components/PageProposal/ProposalInformation/index.tsx +++ b/apps/main/src/dao/components/PageProposal/ProposalInformation/index.tsx @@ -5,9 +5,9 @@ import { useMemo } from 'react' import { shortenTokenAddress, convertToLocaleTimestamp } from '@ui/utils' import Box from '@ui/Box' -import { MetricsTitle } from '@dao/components/MetricsComp' +import { MetricsTitle } from '@/dao/components/MetricsComp' import { InternalLink } from '@ui/Link' -import { ProposalData } from '@dao/types/dao.types' +import { ProposalData } from '@/dao/types/dao.types' type ProposalInformationProps = { proposal: ProposalData diff --git a/apps/main/src/dao/components/PageProposal/Voters/index.tsx b/apps/main/src/dao/components/PageProposal/Voters/index.tsx index 7ab074255..7eca847b5 100644 --- a/apps/main/src/dao/components/PageProposal/Voters/index.tsx +++ b/apps/main/src/dao/components/PageProposal/Voters/index.tsx @@ -3,8 +3,8 @@ import { t } from '@lingui/macro' import { useNavigate } from 'react-router-dom' import { shortenTokenAddress, formatNumber } from '@ui/utils' -import useStore from '@dao/store/useStore' -import networks from '@dao/networks' +import useStore from '@/dao/store/useStore' +import networks from '@/dao/networks' import Box from '@ui/Box' import { ExternalLink, InternalLink } from '@ui/Link' diff --git a/apps/main/src/dao/components/PageProposal/index.tsx b/apps/main/src/dao/components/PageProposal/index.tsx index 56cb9397a..8d0226ef2 100644 --- a/apps/main/src/dao/components/PageProposal/index.tsx +++ b/apps/main/src/dao/components/PageProposal/index.tsx @@ -2,12 +2,12 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useEffect, useMemo } from 'react' -import useStore from '@dao/store/useStore' -import { copyToClipboard } from '@dao/utils' +import useStore from '@/dao/store/useStore' +import { copyToClipboard } from '@/dao/utils' import { breakpoints } from '@ui/utils' -import useProposalsMapper from '@dao/hooks/useProposalsMapper' -import useProposalMapper from '@dao/hooks/useProposalMapper' +import useProposalsMapper from '@/dao/hooks/useProposalsMapper' +import useProposalMapper from '@/dao/hooks/useProposalMapper' import IconButton from '@ui/IconButton' import Tooltip from '@ui/Tooltip' @@ -19,12 +19,12 @@ import Voters from './Voters' import UserBox from '../UserBox' import VoteDialog from '../UserBox/VoteDialog' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import ErrorMessage from '@dao/components/ErrorMessage' -import { MetricsTitle } from '@dao/components/MetricsComp' +import ErrorMessage from '@/dao/components/ErrorMessage' +import { MetricsTitle } from '@/dao/components/MetricsComp' import BackButton from '../BackButton' import ProposalHeader from './ProposalHeader' import ProposalInformation from './ProposalInformation' -import { ProposalType } from '@dao/types/dao.types' +import { ProposalType } from '@/dao/types/dao.types' type ProposalProps = { routerParams: { diff --git a/apps/main/src/dao/components/PageProposals/Page.tsx b/apps/main/src/dao/components/PageProposals/Page.tsx index 1f5bbee53..9ae42aab8 100644 --- a/apps/main/src/dao/components/PageProposals/Page.tsx +++ b/apps/main/src/dao/components/PageProposals/Page.tsx @@ -5,12 +5,12 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import { scrollToTop } from '@dao/utils' -import usePageOnMount from '@dao/hooks/usePageOnMount' +import { scrollToTop } from '@/dao/utils' +import usePageOnMount from '@/dao/hooks/usePageOnMount' -import Proposals from '@dao/components/PageProposals/index' -import DocumentHead from '@dao/layout/DocumentHead' -import Settings from '@dao/layout/Settings' +import Proposals from '@/dao/components/PageProposals/index' +import DocumentHead from '@/dao/layout/DocumentHead' +import Settings from '@/dao/layout/Settings' import Spinner, { SpinnerWrapper } from '@ui/Spinner' const Page: NextPage = () => { diff --git a/apps/main/src/dao/components/PageProposals/Proposal/index.tsx b/apps/main/src/dao/components/PageProposals/Proposal/index.tsx index 3f1292230..2e0e52c2f 100644 --- a/apps/main/src/dao/components/PageProposals/Proposal/index.tsx +++ b/apps/main/src/dao/components/PageProposals/Proposal/index.tsx @@ -3,10 +3,10 @@ import { useCallback } from 'react' import { t } from '@lingui/macro' import VoteCountdown from '../../VoteCountdown' -import ProposalVoteStatusBox from '@dao/components/ProposalVoteStatusBox' +import ProposalVoteStatusBox from '@/dao/components/ProposalVoteStatusBox' import LazyItem from '@ui/LazyItem' -import SmallLabel from '@dao/components/SmallLabel' -import { ProposalData } from '@dao/types/dao.types' +import SmallLabel from '@/dao/components/SmallLabel' +import { ProposalData } from '@/dao/types/dao.types' type Props = { proposalData: ProposalData diff --git a/apps/main/src/dao/components/PageProposals/components/ProposalsFilters.tsx b/apps/main/src/dao/components/PageProposals/components/ProposalsFilters.tsx index 55b34f95b..ea7d4480d 100644 --- a/apps/main/src/dao/components/PageProposals/components/ProposalsFilters.tsx +++ b/apps/main/src/dao/components/PageProposals/components/ProposalsFilters.tsx @@ -1,10 +1,10 @@ import styled from 'styled-components' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Button from '@ui/Button' import Spinner from '@ui/Spinner' -import { ProposalListFilter, ProposalListFilterItem } from '@dao/types/dao.types' +import { ProposalListFilter, ProposalListFilterItem } from '@/dao/types/dao.types' type Props = { className?: string diff --git a/apps/main/src/dao/components/PageProposals/constants.ts b/apps/main/src/dao/components/PageProposals/constants.ts index ae977a89e..7d64ab88b 100644 --- a/apps/main/src/dao/components/PageProposals/constants.ts +++ b/apps/main/src/dao/components/PageProposals/constants.ts @@ -1,4 +1,4 @@ -import { ProposalListFilterItem } from '@dao/types/dao.types' +import { ProposalListFilterItem } from '@/dao/types/dao.types' export const PROPOSAL_FILTERS: ProposalListFilterItem[] = [ { key: 'all', label: 'All' }, diff --git a/apps/main/src/dao/components/PageProposals/index.tsx b/apps/main/src/dao/components/PageProposals/index.tsx index cb145aa6c..e6edefbc5 100644 --- a/apps/main/src/dao/components/PageProposals/index.tsx +++ b/apps/main/src/dao/components/PageProposals/index.tsx @@ -5,7 +5,7 @@ import { t } from '@lingui/macro' import { useNavigate } from 'react-router-dom' import { useCallback, useEffect } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import ProposalsFilters from './components/ProposalsFilters' import Proposal from './Proposal' @@ -14,8 +14,8 @@ import SearchInput from '@ui/SearchInput' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import SelectSortingMethod from '@ui/Select/SelectSortingMethod' import Icon from '@ui/Icon' -import ErrorMessage from '@dao/components/ErrorMessage' -import { ProposalListFilter, SortByFilterProposals } from '@dao/types/dao.types' +import ErrorMessage from '@/dao/components/ErrorMessage' +import { ProposalListFilter, SortByFilterProposals } from '@/dao/types/dao.types' const Proposals = () => { const { diff --git a/apps/main/src/dao/components/PageUser/Page.tsx b/apps/main/src/dao/components/PageUser/Page.tsx index e4404ceaa..1b04a68ea 100644 --- a/apps/main/src/dao/components/PageUser/Page.tsx +++ b/apps/main/src/dao/components/PageUser/Page.tsx @@ -5,11 +5,11 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import { scrollToTop } from '@dao/utils' -import usePageOnMount from '@dao/hooks/usePageOnMount' +import { scrollToTop } from '@/dao/utils' +import usePageOnMount from '@/dao/hooks/usePageOnMount' -import UserPage from '@dao/components/PageUser/index' -import DocumentHead from '@dao/layout/DocumentHead' +import UserPage from '@/dao/components/PageUser/index' +import DocumentHead from '@/dao/layout/DocumentHead' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/dao/components/PageUser/UserGaugeVotesTable/index.tsx b/apps/main/src/dao/components/PageUser/UserGaugeVotesTable/index.tsx index b108377ba..6cc44aecc 100644 --- a/apps/main/src/dao/components/PageUser/UserGaugeVotesTable/index.tsx +++ b/apps/main/src/dao/components/PageUser/UserGaugeVotesTable/index.tsx @@ -2,15 +2,15 @@ import { useEffect } from 'react' import { t } from '@lingui/macro' import { useNavigate } from 'react-router-dom' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { GAUGE_VOTES_LABELS } from '../constants' import { formatDateFromTimestamp, convertToLocaleTimestamp, shortenTokenAddress } from '@ui/utils' -import PaginatedTable from '@dao/components/PaginatedTable' -import { TableRowWrapper, TableData, TableDataLink } from '@dao/components/PaginatedTable/TableRow' -import { UserGaugeVote, UserGaugeVotesSortBy } from '@dao/types/dao.types' +import PaginatedTable from '@/dao/components/PaginatedTable' +import { TableRowWrapper, TableData, TableDataLink } from '@/dao/components/PaginatedTable/TableRow' +import { UserGaugeVote, UserGaugeVotesSortBy } from '@/dao/types/dao.types' interface UserGaugeVotesTableProps { userAddress: string diff --git a/apps/main/src/dao/components/PageUser/UserHeader/index.tsx b/apps/main/src/dao/components/PageUser/UserHeader/index.tsx index 6cbb1d980..50888c6b0 100644 --- a/apps/main/src/dao/components/PageUser/UserHeader/index.tsx +++ b/apps/main/src/dao/components/PageUser/UserHeader/index.tsx @@ -1,14 +1,14 @@ import styled from 'styled-components' -import networks from '@dao/networks' -import { copyToClipboard } from '@dao/utils' -import { TOP_HOLDERS } from '@dao/constants' +import networks from '@/dao/networks' +import { copyToClipboard } from '@/dao/utils' +import { TOP_HOLDERS } from '@/dao/constants' import Box from '@ui/Box' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' import { ExternalLink } from '@ui/Link' -import { UserMapper } from '@dao/types/dao.types' +import { UserMapper } from '@/dao/types/dao.types' interface UserHeaderProps { userAddress: string diff --git a/apps/main/src/dao/components/PageUser/UserLocksTable/index.tsx b/apps/main/src/dao/components/PageUser/UserLocksTable/index.tsx index 3b69d5497..24e6e9eb0 100644 --- a/apps/main/src/dao/components/PageUser/UserLocksTable/index.tsx +++ b/apps/main/src/dao/components/PageUser/UserLocksTable/index.tsx @@ -1,15 +1,15 @@ import { useEffect } from 'react' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { LOCKS_LABELS } from '../constants' import { formatDateFromTimestamp, convertToLocaleTimestamp, formatNumber } from '@ui/utils' -import PaginatedTable from '@dao/components/PaginatedTable' -import { TableRowWrapper, TableData } from '@dao/components/PaginatedTable/TableRow' -import { UserLock, UserLocksSortBy, veCrvLockType } from '@dao/types/dao.types' +import PaginatedTable from '@/dao/components/PaginatedTable' +import { TableRowWrapper, TableData } from '@/dao/components/PaginatedTable/TableRow' +import { UserLock, UserLocksSortBy, veCrvLockType } from '@/dao/types/dao.types' interface UserLocksTableProps { userAddress: string diff --git a/apps/main/src/dao/components/PageUser/UserProposalVotesTable/index.tsx b/apps/main/src/dao/components/PageUser/UserProposalVotesTable/index.tsx index 9c46586ae..0ebc8ffa3 100644 --- a/apps/main/src/dao/components/PageUser/UserProposalVotesTable/index.tsx +++ b/apps/main/src/dao/components/PageUser/UserProposalVotesTable/index.tsx @@ -2,15 +2,15 @@ import { useEffect } from 'react' import { t } from '@lingui/macro' import { useNavigate } from 'react-router-dom' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { VOTES_LABELS } from '../constants' import { formatNumber, formatDateFromTimestamp, convertToLocaleTimestamp } from '@ui/utils/' -import PaginatedTable from '@dao/components/PaginatedTable' -import { TableRowWrapper, TableData, TableDataLink } from '@dao/components/PaginatedTable/TableRow' -import { UserProposalVoteData, UserProposalVotesSortBy } from '@dao/types/dao.types' +import PaginatedTable from '@/dao/components/PaginatedTable' +import { TableRowWrapper, TableData, TableDataLink } from '@/dao/components/PaginatedTable/TableRow' +import { UserProposalVoteData, UserProposalVotesSortBy } from '@/dao/types/dao.types' interface UserProposalVotesTableProps { userAddress: string diff --git a/apps/main/src/dao/components/PageUser/UserStats/index.tsx b/apps/main/src/dao/components/PageUser/UserStats/index.tsx index 5d6882774..831a63e7c 100644 --- a/apps/main/src/dao/components/PageUser/UserStats/index.tsx +++ b/apps/main/src/dao/components/PageUser/UserStats/index.tsx @@ -2,9 +2,9 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { formatNumber, formatDateFromTimestamp, convertToLocaleTimestamp } from '@ui/utils/' -import MetricsComp, { MetricsColumnData } from '@dao/components/MetricsComp' +import MetricsComp, { MetricsColumnData } from '@/dao/components/MetricsComp' import Box from '@ui/Box' -import { VeCrvHolder } from '@dao/types/dao.types' +import { VeCrvHolder } from '@/dao/types/dao.types' interface UserStatsProps { veCrvHolder: VeCrvHolder diff --git a/apps/main/src/dao/components/PageUser/constants.ts b/apps/main/src/dao/components/PageUser/constants.ts index f49eeee5b..9ca5e5af3 100644 --- a/apps/main/src/dao/components/PageUser/constants.ts +++ b/apps/main/src/dao/components/PageUser/constants.ts @@ -1,5 +1,5 @@ import { Column } from '../PaginatedTable' -import { UserLock, UserProposalVoteData, UserGaugeVote } from '@dao/types/dao.types' +import { UserLock, UserProposalVoteData, UserGaugeVote } from '@/dao/types/dao.types' export const LOCKS_LABELS: Column[] = [ { key: 'date', label: 'Date' }, diff --git a/apps/main/src/dao/components/PageUser/index.tsx b/apps/main/src/dao/components/PageUser/index.tsx index d7c018bea..7426a757f 100644 --- a/apps/main/src/dao/components/PageUser/index.tsx +++ b/apps/main/src/dao/components/PageUser/index.tsx @@ -2,7 +2,7 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useEffect, useState } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Box from '@ui/Box' import UserStats from './UserStats' @@ -10,8 +10,8 @@ import UserHeader from './UserHeader' import UserProposalVotesTable from './UserProposalVotesTable' import UserLocksTable from './UserLocksTable' import UserGaugeVotesTable from './UserGaugeVotesTable' -import SubNav from '@dao/components/SubNav' -import { VeCrvHolder } from '@dao/types/dao.types' +import SubNav from '@/dao/components/SubNav' +import { VeCrvHolder } from '@/dao/types/dao.types' type UserPageProps = { routerParams: { diff --git a/apps/main/src/dao/components/PageVeCrv/Page.tsx b/apps/main/src/dao/components/PageVeCrv/Page.tsx index 153af4517..824a26e40 100644 --- a/apps/main/src/dao/components/PageVeCrv/Page.tsx +++ b/apps/main/src/dao/components/PageVeCrv/Page.tsx @@ -1,24 +1,24 @@ import type { NextPage } from 'next' -import type { FormType } from '@dao/components/PageVeCrv/types' +import type { FormType } from '@/dao/components/PageVeCrv/types' import { t } from '@lingui/macro' import { useLocation, useNavigate, useParams } from 'react-router-dom' import React, { useCallback, useEffect } from 'react' import styled from 'styled-components' -import { ROUTE } from '@dao/constants' -import { getPath } from '@dao/utils/utilsRouter' -import { scrollToTop } from '@dao/utils' -import usePageOnMount from '@dao/hooks/usePageOnMount' -import useStore from '@dao/store/useStore' +import { ROUTE } from '@/dao/constants' +import { getPath } from '@/dao/utils/utilsRouter' +import { scrollToTop } from '@/dao/utils' +import usePageOnMount from '@/dao/hooks/usePageOnMount' +import useStore from '@/dao/store/useStore' import Box, { BoxHeader } from '@ui/Box' -import DocumentHead from '@dao/layout/DocumentHead' -import FormCrvLocker from '@dao/components/PageVeCrv/index' +import DocumentHead from '@/dao/layout/DocumentHead' +import FormCrvLocker from '@/dao/components/PageVeCrv/index' import IconButton from '@ui/IconButton' -import Settings from '@dao/layout/Settings' +import Settings from '@/dao/layout/Settings' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import { CurveApi } from '@dao/types/dao.types' +import { CurveApi } from '@/dao/types/dao.types' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/dao/components/PageVeCrv/components/FieldDatePicker.tsx b/apps/main/src/dao/components/PageVeCrv/components/FieldDatePicker.tsx index 8644bf226..6f41a3100 100644 --- a/apps/main/src/dao/components/PageVeCrv/components/FieldDatePicker.tsx +++ b/apps/main/src/dao/components/PageVeCrv/components/FieldDatePicker.tsx @@ -1,18 +1,18 @@ import type { DateValue } from '@internationalized/date' -import type { FormType, VecrvInfo } from '@dao/components/PageVeCrv/types' +import type { FormType, VecrvInfo } from '@/dao/components/PageVeCrv/types' import { t } from '@lingui/macro' import React, { useMemo, useState } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { formatDisplayDate, toCalendarDate } from '@dao/utils/utilsDates' +import { formatDisplayDate, toCalendarDate } from '@/dao/utils/utilsDates' import dayjs from '@ui-kit/lib/dayjs' import { Chip } from '@ui/Typography' import Button from '@ui/Button' import DatePicker from '@ui/DatePicker' -import { CurveApi } from '@dao/types/dao.types' +import { CurveApi } from '@/dao/types/dao.types' const QUICK_ACTIONS: { unit: dayjs.ManipulateType; value: number; label: string }[] = [ { unit: 'week', value: 1, label: t`1 week` }, diff --git a/apps/main/src/dao/components/PageVeCrv/components/FieldLockedAmt.tsx b/apps/main/src/dao/components/PageVeCrv/components/FieldLockedAmt.tsx index 41f2c8454..010553e53 100644 --- a/apps/main/src/dao/components/PageVeCrv/components/FieldLockedAmt.tsx +++ b/apps/main/src/dao/components/PageVeCrv/components/FieldLockedAmt.tsx @@ -1,4 +1,4 @@ -import type { FormType, VecrvInfo } from '@dao/components/PageVeCrv/types' +import type { FormType, VecrvInfo } from '@/dao/components/PageVeCrv/types' import { t } from '@lingui/macro' import React from 'react' import styled from 'styled-components' diff --git a/apps/main/src/dao/components/PageVeCrv/components/FormActions.tsx b/apps/main/src/dao/components/PageVeCrv/components/FormActions.tsx index cd3696f1d..d1043ad41 100644 --- a/apps/main/src/dao/components/PageVeCrv/components/FormActions.tsx +++ b/apps/main/src/dao/components/PageVeCrv/components/FormActions.tsx @@ -1,7 +1,7 @@ import React from 'react' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Button from '@ui/Button' import Spinner from '@ui/Spinner' diff --git a/apps/main/src/dao/components/PageVeCrv/components/FormLockCreate.tsx b/apps/main/src/dao/components/PageVeCrv/components/FormLockCreate.tsx index 7e09f7752..44b97359f 100644 --- a/apps/main/src/dao/components/PageVeCrv/components/FormLockCreate.tsx +++ b/apps/main/src/dao/components/PageVeCrv/components/FormLockCreate.tsx @@ -1,4 +1,4 @@ -import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@dao/components/PageVeCrv/types' +import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@/dao/components/PageVeCrv/types' import type { DateValue } from '@react-types/calendar' import type { Step } from '@ui/Stepper/types' @@ -6,24 +6,24 @@ import { t } from '@lingui/macro' import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_FORM_EST_GAS } from '@dao/components/PageVeCrv/utils' -import { REFRESH_INTERVAL } from '@dao/constants' +import { DEFAULT_FORM_EST_GAS } from '@/dao/components/PageVeCrv/utils' +import { REFRESH_INTERVAL } from '@/dao/constants' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import { formatDisplayDate, toCalendarDate } from '@dao/utils/utilsDates' +import { formatDisplayDate, toCalendarDate } from '@/dao/utils/utilsDates' import { formatNumber } from '@ui/utils' -import usePageVisibleInterval from '@dao/hooks/usePageVisibleInterval' +import usePageVisibleInterval from '@/dao/hooks/usePageVisibleInterval' import dayjs from '@ui-kit/lib/dayjs' -import networks from '@dao/networks' -import useStore from '@dao/store/useStore' - -import AlertFormError from '@dao/components/AlertFormError' -import DetailInfoEstGas from '@dao/components/DetailInfoEstGas' -import FormActions from '@dao/components/PageVeCrv/components/FormActions' -import FieldDatePicker from '@dao/components/PageVeCrv/components/FieldDatePicker' -import FieldLockedAmt from '@dao/components/PageVeCrv/components/FieldLockedAmt' +import networks from '@/dao/networks' +import useStore from '@/dao/store/useStore' + +import AlertFormError from '@/dao/components/AlertFormError' +import DetailInfoEstGas from '@/dao/components/DetailInfoEstGas' +import FormActions from '@/dao/components/PageVeCrv/components/FormActions' +import FieldDatePicker from '@/dao/components/PageVeCrv/components/FieldDatePicker' +import FieldLockedAmt from '@/dao/components/PageVeCrv/components/FieldLockedAmt' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi } from '@dao/types/dao.types' +import { CurveApi } from '@/dao/types/dao.types' const FormLockCreate = ({ curve, rChainId, rFormType, vecrvInfo }: PageVecrv) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dao/components/PageVeCrv/components/FormLockCrv.tsx b/apps/main/src/dao/components/PageVeCrv/components/FormLockCrv.tsx index 2d1b5eaeb..30bcea611 100644 --- a/apps/main/src/dao/components/PageVeCrv/components/FormLockCrv.tsx +++ b/apps/main/src/dao/components/PageVeCrv/components/FormLockCrv.tsx @@ -1,24 +1,24 @@ -import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@dao/components/PageVeCrv/types' +import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@/dao/components/PageVeCrv/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_FORM_EST_GAS } from '@dao/components/PageVeCrv/utils' -import { REFRESH_INTERVAL } from '@dao/constants' +import { DEFAULT_FORM_EST_GAS } from '@/dao/components/PageVeCrv/utils' +import { REFRESH_INTERVAL } from '@/dao/constants' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import networks from '@dao/networks' -import usePageVisibleInterval from '@dao/hooks/usePageVisibleInterval' -import useStore from '@dao/store/useStore' - -import AlertFormError from '@dao/components/AlertFormError' -import FormActions from '@dao/components/PageVeCrv/components/FormActions' -import DetailInfoEstGas from '@dao/components/DetailInfoEstGas' -import FieldLockedAmt from '@dao/components/PageVeCrv/components/FieldLockedAmt' +import networks from '@/dao/networks' +import usePageVisibleInterval from '@/dao/hooks/usePageVisibleInterval' +import useStore from '@/dao/store/useStore' + +import AlertFormError from '@/dao/components/AlertFormError' +import FormActions from '@/dao/components/PageVeCrv/components/FormActions' +import DetailInfoEstGas from '@/dao/components/DetailInfoEstGas' +import FieldLockedAmt from '@/dao/components/PageVeCrv/components/FieldLockedAmt' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi } from '@dao/types/dao.types' +import { CurveApi } from '@/dao/types/dao.types' const FormLockCrv = ({ curve, rChainId, rFormType, vecrvInfo }: PageVecrv) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dao/components/PageVeCrv/components/FormLockDate.tsx b/apps/main/src/dao/components/PageVeCrv/components/FormLockDate.tsx index eb5fb30c4..6f945c83b 100644 --- a/apps/main/src/dao/components/PageVeCrv/components/FormLockDate.tsx +++ b/apps/main/src/dao/components/PageVeCrv/components/FormLockDate.tsx @@ -1,4 +1,4 @@ -import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@dao/components/PageVeCrv/types' +import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@/dao/components/PageVeCrv/types' import type { DateValue } from '@react-types/calendar' import type { Step } from '@ui/Stepper/types' @@ -6,23 +6,23 @@ import { t } from '@lingui/macro' import React, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_FORM_EST_GAS } from '@dao/components/PageVeCrv/utils' -import { REFRESH_INTERVAL } from '@dao/constants' +import { DEFAULT_FORM_EST_GAS } from '@/dao/components/PageVeCrv/utils' +import { REFRESH_INTERVAL } from '@/dao/constants' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import { formatDisplayDate, toCalendarDate } from '@dao/utils/utilsDates' +import { formatDisplayDate, toCalendarDate } from '@/dao/utils/utilsDates' import dayjs from '@ui-kit/lib/dayjs' -import networks from '@dao/networks' -import usePageVisibleInterval from '@dao/hooks/usePageVisibleInterval' -import useStore from '@dao/store/useStore' +import networks from '@/dao/networks' +import usePageVisibleInterval from '@/dao/hooks/usePageVisibleInterval' +import useStore from '@/dao/store/useStore' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@dao/components/AlertFormError' -import FormActions from '@dao/components/PageVeCrv/components/FormActions' -import DetailInfoEstGas from '@dao/components/DetailInfoEstGas' -import FieldDatePicker from '@dao/components/PageVeCrv/components/FieldDatePicker' +import AlertFormError from '@/dao/components/AlertFormError' +import FormActions from '@/dao/components/PageVeCrv/components/FormActions' +import DetailInfoEstGas from '@/dao/components/DetailInfoEstGas' +import FieldDatePicker from '@/dao/components/PageVeCrv/components/FieldDatePicker' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi } from '@dao/types/dao.types' +import { CurveApi } from '@/dao/types/dao.types' const FormLockDate = ({ curve, rChainId, rFormType, vecrvInfo }: PageVecrv) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dao/components/PageVeCrv/index.tsx b/apps/main/src/dao/components/PageVeCrv/index.tsx index 98fe3757f..4ca6c7968 100644 --- a/apps/main/src/dao/components/PageVeCrv/index.tsx +++ b/apps/main/src/dao/components/PageVeCrv/index.tsx @@ -1,15 +1,15 @@ -import type { FormType, PageVecrv } from '@dao/components/PageVeCrv/types' +import type { FormType, PageVecrv } from '@/dao/components/PageVeCrv/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import TabSlide, { SlideTab, SlideTabs } from '@ui/TabSlide' -import FormLockCreate from '@dao/components/PageVeCrv/components/FormLockCreate' -import FormLockCrv from '@dao/components/PageVeCrv/components/FormLockCrv' -import FormLockDate from '@dao/components/PageVeCrv/components/FormLockDate' +import FormLockCreate from '@/dao/components/PageVeCrv/components/FormLockCreate' +import FormLockCrv from '@/dao/components/PageVeCrv/components/FormLockCrv' +import FormLockDate from '@/dao/components/PageVeCrv/components/FormLockDate' const FormCrvLocker = (pageProps: PageVecrv) => { const { curve, rFormType, vecrvInfo, toggleForm } = pageProps diff --git a/apps/main/src/dao/components/PageVeCrv/types.ts b/apps/main/src/dao/components/PageVeCrv/types.ts index 5851913fa..afb36e3d0 100644 --- a/apps/main/src/dao/components/PageVeCrv/types.ts +++ b/apps/main/src/dao/components/PageVeCrv/types.ts @@ -1,5 +1,5 @@ import { DateValue } from '@react-types/calendar' -import { CurveApi, ChainId, EstimatedGas } from '@dao/types/dao.types' +import { CurveApi, ChainId, EstimatedGas } from '@/dao/types/dao.types' export type FormType = 'create' | 'adjust_crv' | 'adjust_date' export type StepKey = 'APPROVE' | 'CREATE_LOCK' | 'INCREASE_CRV' | 'INCREASE_TIME' | 'APPROVAL' | 'WITHDRAW' | '' diff --git a/apps/main/src/dao/components/PageVeCrv/utils.ts b/apps/main/src/dao/components/PageVeCrv/utils.ts index b6848a903..e9a8a29d2 100644 --- a/apps/main/src/dao/components/PageVeCrv/utils.ts +++ b/apps/main/src/dao/components/PageVeCrv/utils.ts @@ -1,4 +1,4 @@ -import type { FormEstGas, FormStatus, FormValues, VecrvInfo } from '@dao/components/PageVeCrv/types' +import type { FormEstGas, FormStatus, FormValues, VecrvInfo } from '@/dao/components/PageVeCrv/types' export const DEFAULT_USER_LOCKED_CRV_INFO: VecrvInfo = { crv: '0', diff --git a/apps/main/src/dao/components/PaginatedTable/NoTableData.tsx b/apps/main/src/dao/components/PaginatedTable/NoTableData.tsx index 1d06391a8..cc904006b 100644 --- a/apps/main/src/dao/components/PaginatedTable/NoTableData.tsx +++ b/apps/main/src/dao/components/PaginatedTable/NoTableData.tsx @@ -1,7 +1,7 @@ import styled from 'styled-components' import Box from '@ui/Box' -import ErrorMessage from '@dao/components/ErrorMessage' +import ErrorMessage from '@/dao/components/ErrorMessage' type NoTableDataProps = { height: string diff --git a/apps/main/src/dao/components/PaginatedTable/index.tsx b/apps/main/src/dao/components/PaginatedTable/index.tsx index de15bcab0..000cbb616 100644 --- a/apps/main/src/dao/components/PaginatedTable/index.tsx +++ b/apps/main/src/dao/components/PaginatedTable/index.tsx @@ -3,8 +3,8 @@ import styled from 'styled-components' import TableHeader from './TableHeader' import Pagination from './Pagination' -import Spinner from '@dao/components/Spinner' -import ErrorMessage from '@dao/components/ErrorMessage' +import Spinner from '@/dao/components/Spinner' +import ErrorMessage from '@/dao/components/ErrorMessage' import Box from '@ui/Box' import NoTableData from './NoTableData' diff --git a/apps/main/src/dao/components/ProposalVoteStatusBox/index.tsx b/apps/main/src/dao/components/ProposalVoteStatusBox/index.tsx index e238922f3..0df640046 100644 --- a/apps/main/src/dao/components/ProposalVoteStatusBox/index.tsx +++ b/apps/main/src/dao/components/ProposalVoteStatusBox/index.tsx @@ -4,9 +4,9 @@ import { t } from '@lingui/macro' import { breakpoints, formatNumber } from '@ui/utils' import Box from '@ui/Box' -import ProgressBar from '@dao/components/ProposalVoteStatusBox/ProgressBar' +import ProgressBar from '@/dao/components/ProposalVoteStatusBox/ProgressBar' import Tooltip, { TooltipIcon } from '@ui/Tooltip' -import { ProposalData } from '@dao/types/dao.types' +import { ProposalData } from '@/dao/types/dao.types' type ProposalVoteStatusBoxProps = { proposalData: ProposalData diff --git a/apps/main/src/dao/components/TokenIcons/TokenIcon.tsx b/apps/main/src/dao/components/TokenIcons/TokenIcon.tsx index 849e46305..4849870e1 100644 --- a/apps/main/src/dao/components/TokenIcons/TokenIcon.tsx +++ b/apps/main/src/dao/components/TokenIcons/TokenIcon.tsx @@ -2,7 +2,7 @@ import type { ImgHTMLAttributes } from 'react' import React, { useMemo } from 'react' import styled from 'styled-components' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import Image from 'next/image' type Size = 'sm' diff --git a/apps/main/src/dao/components/UserBox/UserInformation.tsx b/apps/main/src/dao/components/UserBox/UserInformation.tsx index 4b50c6a34..27a54e872 100644 --- a/apps/main/src/dao/components/UserBox/UserInformation.tsx +++ b/apps/main/src/dao/components/UserBox/UserInformation.tsx @@ -2,14 +2,14 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useMemo } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { shortenTokenAddress, formatNumber } from '@ui/utils' import { TooltipIcon } from '@ui/Tooltip' import Loader from 'ui/src/Loader/Loader' import InternalLink from '@ui/Link/InternalLink' import Box from '@ui/Box' -import { SnapshotVotingPower, ActiveProposal } from '@dao/types/dao.types' +import { SnapshotVotingPower, ActiveProposal } from '@/dao/types/dao.types' type Props = { noLink?: boolean diff --git a/apps/main/src/dao/components/UserBox/VoteDialog.tsx b/apps/main/src/dao/components/UserBox/VoteDialog.tsx index 8a27363a8..66b50c50c 100644 --- a/apps/main/src/dao/components/UserBox/VoteDialog.tsx +++ b/apps/main/src/dao/components/UserBox/VoteDialog.tsx @@ -1,15 +1,15 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import { formatNumber } from '@ui/utils' import Button from '@ui/Button' import Icon from '@ui/Icon' import Box from '@ui/Box' import AlertBox from '@ui/AlertBox' -import PendingTx from '@dao/components/UserBox/PendingTx' -import { ProposalType, SnapshotVotingPower, ActiveProposal } from '@dao/types/dao.types' +import PendingTx from '@/dao/components/UserBox/PendingTx' +import { ProposalType, SnapshotVotingPower, ActiveProposal } from '@/dao/types/dao.types' type Props = { userAddress: string diff --git a/apps/main/src/dao/components/UserBox/index.tsx b/apps/main/src/dao/components/UserBox/index.tsx index 2a6e0f184..ea607b6c9 100644 --- a/apps/main/src/dao/components/UserBox/index.tsx +++ b/apps/main/src/dao/components/UserBox/index.tsx @@ -5,7 +5,7 @@ import { t } from '@lingui/macro' import Box from '@ui/Box' import Button from '@ui/Button' import UserInformation from './UserInformation' -import { SnapshotVotingPower, ActiveProposal } from '@dao/types/dao.types' +import { SnapshotVotingPower, ActiveProposal } from '@/dao/types/dao.types' type Props = { children?: React.ReactNode diff --git a/apps/main/src/dao/hooks/useLayoutHeight.ts b/apps/main/src/dao/hooks/useLayoutHeight.ts index 52f4dac8b..c8a743acb 100644 --- a/apps/main/src/dao/hooks/useLayoutHeight.ts +++ b/apps/main/src/dao/hooks/useLayoutHeight.ts @@ -1,8 +1,8 @@ -import type { LayoutHeight } from '@dao/store/createAppSlice' +import type { LayoutHeight } from '@/dao/store/createAppSlice' import React, { useEffect } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' function useLayoutHeight(elementRef: React.RefObject, key: keyof LayoutHeight) { const pageWidth = useStore((state) => state.layout.pageWidth) diff --git a/apps/main/src/dao/hooks/usePageOnMount.ts b/apps/main/src/dao/hooks/usePageOnMount.ts index 6ad2b810c..5e7d80a7c 100644 --- a/apps/main/src/dao/hooks/usePageOnMount.ts +++ b/apps/main/src/dao/hooks/usePageOnMount.ts @@ -5,17 +5,17 @@ import { ethers } from 'ethers' import { useCallback, useEffect } from 'react' import { useConnectWallet, useSetChain, useSetLocale } from '@ui-kit/features/connect-wallet' -import { CONNECT_STAGE, REFRESH_INTERVAL } from '@dao/constants' +import { CONNECT_STAGE, REFRESH_INTERVAL } from '@/dao/constants' import { dynamicActivate, updateAppLocale } from '@ui-kit/lib/i18n' -import { getStorageValue, setStorageValue } from '@dao/utils/utilsStorage' -import { getNetworkFromUrl, parseParams } from '@dao/utils/utilsRouter' -import { getWalletChainId, getWalletSignerAddress } from '@dao/store/createWalletSlice' -import { helpers } from '@dao/lib/curvejs' +import { getStorageValue, setStorageValue } from '@/dao/utils/utilsStorage' +import { getNetworkFromUrl, parseParams } from '@/dao/utils/utilsRouter' +import { getWalletChainId, getWalletSignerAddress } from '@/dao/store/createWalletSlice' +import { helpers } from '@/dao/lib/curvejs' import { isFailure, isLoading, isSuccess } from '@ui/utils' -import networks from '@dao/networks' -import useStore from '@dao/store/useStore' +import networks from '@/dao/networks' +import useStore from '@/dao/store/useStore' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId, PageProps, Wallet } from '@dao/types/dao.types' +import { ChainId, PageProps, Wallet } from '@/dao/types/dao.types' function usePageOnMount(params: Params, location: Location, navigate: NavigateFunction, chainIdNotRequired?: boolean) { const [{ wallet }, connect, disconnect] = useConnectWallet() diff --git a/apps/main/src/dao/hooks/useProposalMapper.ts b/apps/main/src/dao/hooks/useProposalMapper.ts index 02d16ba94..017c5970c 100644 --- a/apps/main/src/dao/hooks/useProposalMapper.ts +++ b/apps/main/src/dao/hooks/useProposalMapper.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' const useProposalMapper = () => { const cached = useStore((state) => state.storeCache.cacheProposalMapper) diff --git a/apps/main/src/dao/hooks/useProposalsMapper.ts b/apps/main/src/dao/hooks/useProposalsMapper.ts index c38478ba4..46fa9335d 100644 --- a/apps/main/src/dao/hooks/useProposalsMapper.ts +++ b/apps/main/src/dao/hooks/useProposalsMapper.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' const useProposalsMapper = () => { const cached = useStore((state) => state.storeCache.cacheProposalsMapper) diff --git a/apps/main/src/dao/layout/Header.tsx b/apps/main/src/dao/layout/Header.tsx index e8e1a385c..294bf38b4 100644 --- a/apps/main/src/dao/layout/Header.tsx +++ b/apps/main/src/dao/layout/Header.tsx @@ -1,19 +1,19 @@ import React, { useCallback, useMemo, useRef } from 'react' import { t } from '@lingui/macro' import { useLocation, useNavigate } from 'react-router-dom' -import { CONNECT_STAGE } from '@dao/constants' -import { getLocaleFromUrl, getNetworkFromUrl, getRestFullPathname } from '@dao/utils/utilsRouter' +import { CONNECT_STAGE } from '@/dao/constants' +import { getLocaleFromUrl, getNetworkFromUrl, getRestFullPathname } from '@/dao/utils/utilsRouter' import { _parseRouteAndIsActive, isLoading } from '@ui/utils' import { getWalletSignerAddress, useConnectWallet } from '@ui-kit/features/connect-wallet' -import networks, { visibleNetworksList } from '@dao/networks' -import useLayoutHeight from '@dao/hooks/useLayoutHeight' -import useStore from '@dao/store/useStore' +import networks, { visibleNetworksList } from '@/dao/networks' +import useLayoutHeight from '@/dao/hooks/useLayoutHeight' +import useStore from '@/dao/store/useStore' import { Header as NewHeader, useHeaderHeight } from '@ui-kit/widgets/Header' import { NavigationSection } from '@ui-kit/widgets/Header/types' import { APP_LINK } from '@ui-kit/shared/routes' import { GlobalBannerProps } from '@ui/Banner/GlobalBanner' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId } from '@dao/types/dao.types' +import { ChainId } from '@/dao/types/dao.types' type HeaderProps = { sections: NavigationSection[]; BannerProps: GlobalBannerProps } diff --git a/apps/main/src/dao/layout/Settings.tsx b/apps/main/src/dao/layout/Settings.tsx index 9c881f4d6..2352530bb 100644 --- a/apps/main/src/dao/layout/Settings.tsx +++ b/apps/main/src/dao/layout/Settings.tsx @@ -1,4 +1,4 @@ -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' import styled, { keyframes } from 'styled-components' import Button from '@ui/Button' diff --git a/apps/main/src/dao/layout/index.tsx b/apps/main/src/dao/layout/index.tsx index 7fd757c8a..7969bf0c3 100644 --- a/apps/main/src/dao/layout/index.tsx +++ b/apps/main/src/dao/layout/index.tsx @@ -5,13 +5,13 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { CONNECT_STAGE, isFailure, isLoading } from '@ui/utils' -import { getWalletChainId } from '@dao/store/createWalletSlice' -import { getNetworkFromUrl } from '@dao/utils/utilsRouter' +import { getWalletChainId } from '@/dao/store/createWalletSlice' +import { getNetworkFromUrl } from '@/dao/utils/utilsRouter' import { useConnectWallet } from '@ui-kit/features/connect-wallet' import { useHeightResizeObserver } from '@ui/hooks' -import useStore from '@dao/store/useStore' +import useStore from '@/dao/store/useStore' -import Header from '@dao/layout/Header' +import Header from '@/dao/layout/Header' import { Footer } from '@ui-kit/widgets/Footer' import { useUserProfileStore } from '@ui-kit/features/user-profile' diff --git a/apps/main/src/dao/lib/curvejs.ts b/apps/main/src/dao/lib/curvejs.ts index 64acd7df3..967f7281f 100644 --- a/apps/main/src/dao/lib/curvejs.ts +++ b/apps/main/src/dao/lib/curvejs.ts @@ -1,13 +1,13 @@ -import type { FormType as LockFormType } from '@dao/components/PageVeCrv/types' +import type { FormType as LockFormType } from '@/dao/components/PageVeCrv/types' import type { DateValue } from '@internationalized/date' import dayjs from '@ui-kit/lib/dayjs' import PromisePool from '@supercharge/promise-pool/dist' -import networks from '@dao/networks' +import networks from '@/dao/networks' import cloneDeep from 'lodash/cloneDeep' -import { getErrorMessage } from '@dao/utils' +import { getErrorMessage } from '@/dao/utils' import { log } from '@ui-kit/lib' import { CurveApi, @@ -17,7 +17,7 @@ import { EstimatedGas, UsdRatesMapper, ClaimButtonsKey, -} from '@dao/types/dao.types' +} from '@/dao/types/dao.types' export const helpers = { initCurveJs: async (chainId: ChainId, wallet: Wallet | null) => { diff --git a/apps/main/src/dao/networks.ts b/apps/main/src/dao/networks.ts index 0aa176808..fc6c6b16b 100644 --- a/apps/main/src/dao/networks.ts +++ b/apps/main/src/dao/networks.ts @@ -3,8 +3,8 @@ import { ChainOption } from '@ui-kit/features/switch-chain' import sortBy from 'lodash/sortBy' import { getBaseNetworksConfig, NETWORK_BASE_CONFIG } from '@ui/utils' -import curvejsApi from '@dao/lib/curvejs' -import { ChainId, NetworkEnum, NetworkConfig } from '@dao/types/dao.types' +import curvejsApi from '@/dao/lib/curvejs' +import { ChainId, NetworkEnum, NetworkConfig } from '@/dao/types/dao.types' const DEFAULT_NETWORK_CONFIG = { api: curvejsApi, diff --git a/apps/main/src/dao/store/createAnalyticsSlice.ts b/apps/main/src/dao/store/createAnalyticsSlice.ts index 9a8c65acb..3eb413d6e 100644 --- a/apps/main/src/dao/store/createAnalyticsSlice.ts +++ b/apps/main/src/dao/store/createAnalyticsSlice.ts @@ -1,10 +1,10 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' import produce from 'immer' import { formatUnits, formatEther, Contract } from 'ethers' -import { contractVeCRV, contractCrv } from '@dao/store/contracts' -import { abiVeCrv } from '@dao/store/abis' +import { contractVeCRV, contractCrv } from '@/dao/store/contracts' +import { abiVeCrv } from '@/dao/store/abis' import { convertToLocaleTimestamp, formatDateFromTimestamp } from 'ui/src/utils' import { VeCrvFeeRes, @@ -17,7 +17,7 @@ import { FetchingState, TopHoldersSortBy, AllHoldersSortBy, -} from '@dao/types/dao.types' +} from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createAppSlice.ts b/apps/main/src/dao/store/createAppSlice.ts index e754f6581..f626db455 100644 --- a/apps/main/src/dao/store/createAppSlice.ts +++ b/apps/main/src/dao/store/createAppSlice.ts @@ -1,12 +1,12 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' import type { ConnectState } from '@ui/utils' import isEqual from 'lodash/isEqual' import produce from 'immer' import { log } from '@ui-kit/lib' -import { CurveApi, RouterProps, Wallet } from '@dao/types/dao.types' +import { CurveApi, RouterProps, Wallet } from '@/dao/types/dao.types' export type DefaultStateKeys = keyof typeof DEFAULT_STATE export type SliceKey = keyof State | '' diff --git a/apps/main/src/dao/store/createCacheSlice.ts b/apps/main/src/dao/store/createCacheSlice.ts index 92d944f11..10688faf3 100644 --- a/apps/main/src/dao/store/createCacheSlice.ts +++ b/apps/main/src/dao/store/createCacheSlice.ts @@ -1,8 +1,8 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' -import { sleep } from '@dao/utils' -import { ProposalData, PricesProposalData, GaugeFormattedData, GaugeWeightHistoryData } from '@dao/types/dao.types' +import { sleep } from '@/dao/utils' +import { ProposalData, PricesProposalData, GaugeFormattedData, GaugeWeightHistoryData } from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createGasSlice.ts b/apps/main/src/dao/store/createGasSlice.ts index 7684bc3be..c37fd47ca 100644 --- a/apps/main/src/dao/store/createGasSlice.ts +++ b/apps/main/src/dao/store/createGasSlice.ts @@ -1,13 +1,13 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' import cloneDeep from 'lodash/cloneDeep' import { getEthereumCustomFeeDataValues } from '@ui/utils/utilsGas' -import { httpFetcher } from '@dao/utils' +import { httpFetcher } from '@/dao/utils' import { log } from '@ui-kit/lib' -import networks from '@dao/networks' -import { CurveApi, Provider, GasInfo } from '@dao/types/dao.types' +import networks from '@/dao/networks' +import { CurveApi, Provider, GasInfo } from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createGaugesSlice.ts b/apps/main/src/dao/store/createGaugesSlice.ts index 147ca0c0c..fa68a79a2 100644 --- a/apps/main/src/dao/store/createGaugesSlice.ts +++ b/apps/main/src/dao/store/createGaugesSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' import Fuse from 'fuse.js' import produce from 'immer' import { t } from '@lingui/macro' @@ -20,7 +20,7 @@ import { SortByFilterGauges, SortDirection, GaugeVotesSortBy, -} from '@dao/types/dao.types' +} from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createLayoutSlice.ts b/apps/main/src/dao/store/createLayoutSlice.ts index 42cfaeba3..9cb085c2a 100644 --- a/apps/main/src/dao/store/createLayoutSlice.ts +++ b/apps/main/src/dao/store/createLayoutSlice.ts @@ -1,10 +1,10 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' -import type { LayoutHeight } from '@dao/store/types' +import type { State } from '@/dao/store/useStore' +import type { LayoutHeight } from '@/dao/store/types' import produce from 'immer' import cloneDeep from 'lodash/cloneDeep' -import { PageWidthClassName } from '@dao/types/dao.types' +import { PageWidthClassName } from '@/dao/types/dao.types' export type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createLockedCrvSlice.ts b/apps/main/src/dao/store/createLockedCrvSlice.ts index 25ad14b5c..7bd5720e2 100644 --- a/apps/main/src/dao/store/createLockedCrvSlice.ts +++ b/apps/main/src/dao/store/createLockedCrvSlice.ts @@ -1,8 +1,8 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' -import type { FormType, FormEstGas, FormStatus, FormValues, VecrvInfo } from '@dao/components/PageVeCrv/types' +import type { State } from '@/dao/store/useStore' +import type { FormType, FormEstGas, FormStatus, FormValues, VecrvInfo } from '@/dao/components/PageVeCrv/types' -import networks from '@dao/networks' +import networks from '@/dao/networks' import cloneDeep from 'lodash/cloneDeep' import { @@ -10,7 +10,7 @@ import { DEFAULT_USER_LOCKED_CRV_INFO, DEFAULT_FORM_STATUS, DEFAULT_FORM_EST_GAS, -} from '@dao/components/PageVeCrv/utils' +} from '@/dao/components/PageVeCrv/utils' import { formatNumber, shortenAccount } from '@ui/utils' import dayjs from '@ui-kit/lib/dayjs' @@ -20,7 +20,7 @@ import { FnStepEstGasApprovalResponse, FnStepApproveResponse, FnStepResponse, -} from '@dao/types/dao.types' +} from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createProposalsSlice.ts b/apps/main/src/dao/store/createProposalsSlice.ts index 6beb7507d..a84bd15d0 100644 --- a/apps/main/src/dao/store/createProposalsSlice.ts +++ b/apps/main/src/dao/store/createProposalsSlice.ts @@ -1,9 +1,9 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' -import networks from '@dao/networks' -import { SEVEN_DAYS, TOP_HOLDERS } from '@dao/constants' -import { helpers } from '@dao/lib/curvejs' +import networks from '@/dao/networks' +import { SEVEN_DAYS, TOP_HOLDERS } from '@/dao/constants' +import { helpers } from '@/dao/lib/curvejs' import Fuse from 'fuse.js' import orderBy from 'lodash/orderBy' @@ -22,7 +22,7 @@ import { ProposalListFilter, SortByFilterProposals, SortDirection, -} from '@dao/types/dao.types' +} from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createTokensSlice.ts b/apps/main/src/dao/store/createTokensSlice.ts index dade201f5..bd8968792 100644 --- a/apps/main/src/dao/store/createTokensSlice.ts +++ b/apps/main/src/dao/store/createTokensSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createUsdRatesSlice.ts b/apps/main/src/dao/store/createUsdRatesSlice.ts index 8bf4b35c9..69f2c960c 100644 --- a/apps/main/src/dao/store/createUsdRatesSlice.ts +++ b/apps/main/src/dao/store/createUsdRatesSlice.ts @@ -1,11 +1,11 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' import cloneDeep from 'lodash/cloneDeep' -import { NETWORK_TOKEN } from '@dao/constants' -import curvejsApi from '@dao/lib/curvejs' -import { CurveApi, UsdRatesMapper } from '@dao/types/dao.types' +import { NETWORK_TOKEN } from '@/dao/constants' +import curvejsApi from '@/dao/lib/curvejs' +import { CurveApi, UsdRatesMapper } from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createUserSlice.ts b/apps/main/src/dao/store/createUserSlice.ts index 9acc5e618..228a9b25d 100644 --- a/apps/main/src/dao/store/createUserSlice.ts +++ b/apps/main/src/dao/store/createUserSlice.ts @@ -1,14 +1,14 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' import type { WalletState } from '@web3-onboard/core' import { Contract } from 'ethers' import produce from 'immer' -import { SEVEN_DAYS } from '@dao/constants' -import { getWalletSignerAddress, getWalletSignerEns } from '@dao/store/createWalletSlice' -import { contractVeCRV } from '@dao/store/contracts' -import { abiVeCrv } from '@dao/store/abis' +import { SEVEN_DAYS } from '@/dao/constants' +import { getWalletSignerAddress, getWalletSignerEns } from '@/dao/store/createWalletSlice' +import { contractVeCRV } from '@/dao/store/contracts' +import { abiVeCrv } from '@/dao/store/abis' import { CurveApi, UserMapper, @@ -27,7 +27,7 @@ import { UserGaugeVotesSortBy, UserProposalVotesSortBy, UserGaugeVoteWeightSortBy, -} from '@dao/types/dao.types' +} from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/createWalletSlice.ts b/apps/main/src/dao/store/createWalletSlice.ts index 170f4ce83..8f83ea934 100644 --- a/apps/main/src/dao/store/createWalletSlice.ts +++ b/apps/main/src/dao/store/createWalletSlice.ts @@ -1,13 +1,13 @@ import type { CustomNotification, NotificationType } from '@web3-onboard/core/dist/types' import type { GetState, SetState } from 'zustand' import type { OnboardAPI, UpdateNotification } from '@web3-onboard/core' -import type { State } from '@dao/store/useStore' +import type { State } from '@/dao/store/useStore' import { BrowserProvider, ethers } from 'ethers' import cloneDeep from 'lodash/cloneDeep' -import { CONNECT_STAGE } from '@dao/constants' -import { Provider, Wallet } from '@dao/types/dao.types' +import { CONNECT_STAGE } from '@/dao/constants' +import { Provider, Wallet } from '@/dao/types/dao.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dao/store/useStore.ts b/apps/main/src/dao/store/useStore.ts index 30007ac5f..818e268d2 100644 --- a/apps/main/src/dao/store/useStore.ts +++ b/apps/main/src/dao/store/useStore.ts @@ -5,14 +5,14 @@ import { devtools, persist } from 'zustand/middleware' import { create } from 'zustand' import merge from 'lodash/merge' -import createAppSlice, { AppSlice } from '@dao/store/createAppSlice' -import createCacheSlice, { CacheSlice } from '@dao/store/createCacheSlice' -import createGasSlice, { GasSlice } from '@dao/store/createGasSlice' -import createWalletSlice, { WalletSlice } from '@dao/store/createWalletSlice' -import createProposalsSlice, { ProposalsSlice } from '@dao/store/createProposalsSlice' -import createUserSlice, { UserSlice } from '@dao/store/createUserSlice' -import createGaugesSlice, { GaugesSlice } from '@dao/store/createGaugesSlice' -import createAnalyticsSlice, { AnalyticsSlice } from '@dao/store/createAnalyticsSlice' +import createAppSlice, { AppSlice } from '@/dao/store/createAppSlice' +import createCacheSlice, { CacheSlice } from '@/dao/store/createCacheSlice' +import createGasSlice, { GasSlice } from '@/dao/store/createGasSlice' +import createWalletSlice, { WalletSlice } from '@/dao/store/createWalletSlice' +import createProposalsSlice, { ProposalsSlice } from '@/dao/store/createProposalsSlice' +import createUserSlice, { UserSlice } from '@/dao/store/createUserSlice' +import createGaugesSlice, { GaugesSlice } from '@/dao/store/createGaugesSlice' +import createAnalyticsSlice, { AnalyticsSlice } from '@/dao/store/createAnalyticsSlice' import createTokensSlice, { TokensSlice } from './createTokensSlice' import createLockedCrvSlice, { LockedCrvSlice } from './createLockedCrvSlice' import createUsdRatesSlice, { UsdRatesSlice } from './createUsdRatesSlice' diff --git a/apps/main/src/dao/types/dao.types.ts b/apps/main/src/dao/types/dao.types.ts index 3ac4171da..ac8e90e70 100644 --- a/apps/main/src/dao/types/dao.types.ts +++ b/apps/main/src/dao/types/dao.types.ts @@ -4,7 +4,7 @@ import type { Locale } from '@ui-kit/lib/i18n' import type { Location, NavigateFunction, Params } from 'react-router' import type curveApi from '@curvefi/api' import { ethers } from 'ethers' -import curvejsApi from '@dao/lib/curvejs' +import curvejsApi from '@/dao/lib/curvejs' import type { BaseConfig } from '@ui/utils' export type PageWidthClassName = diff --git a/apps/main/src/dao/utils/index.ts b/apps/main/src/dao/utils/index.ts index 8845faf08..519aaa424 100644 --- a/apps/main/src/dao/utils/index.ts +++ b/apps/main/src/dao/utils/index.ts @@ -1,4 +1,4 @@ -import { AlertFormErrorKey } from '@dao/types/dao.types' +import { AlertFormErrorKey } from '@/dao/types/dao.types' export * from './utilsStorage' export * from './utilsRouter' diff --git a/apps/main/src/dao/utils/utilsRouter.ts b/apps/main/src/dao/utils/utilsRouter.ts index 6daeb0eb7..1c10f6149 100644 --- a/apps/main/src/dao/utils/utilsRouter.ts +++ b/apps/main/src/dao/utils/utilsRouter.ts @@ -1,10 +1,10 @@ import type { Params } from 'react-router' import { DAO_ROUTES } from '@ui-kit/shared/routes' -import { ROUTE } from '@dao/constants' +import { ROUTE } from '@/dao/constants' import { DEFAULT_LOCALES, Locale, parseLocale } from '@ui-kit/lib/i18n' -import networks, { networksIdMapper } from '@dao/networks' -import { NetworkEnum, RouterParams } from '@dao/types/dao.types' +import networks, { networksIdMapper } from '@/dao/networks' +import { NetworkEnum, RouterParams } from '@/dao/types/dao.types' export function getPath({ locale, network, ...rest }: Params, rerouteRoute: string) { const { parsedLocale } = parseLocale(locale) diff --git a/apps/main/src/dex/components/AlertFormWarning.tsx b/apps/main/src/dex/components/AlertFormWarning.tsx index 66f567262..0a68c8aef 100644 --- a/apps/main/src/dex/components/AlertFormWarning.tsx +++ b/apps/main/src/dex/components/AlertFormWarning.tsx @@ -4,7 +4,7 @@ import { t } from '@lingui/macro' import React, { useMemo } from 'react' import AlertBox from '@ui/AlertBox' -import { AlertType } from '@main/types/main.types' +import { AlertType } from '@/dex/types/main.types' const ALERT_FORM_WARNING_KEYS = { 'warning-exchange-rate-low': 'warning-exchange-rate-low', diff --git a/apps/main/src/dex/components/ChipPool.tsx b/apps/main/src/dex/components/ChipPool.tsx index 248b2fc47..649de43ed 100644 --- a/apps/main/src/dex/components/ChipPool.tsx +++ b/apps/main/src/dex/components/ChipPool.tsx @@ -5,8 +5,8 @@ import { useMemo, useRef } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { copyToClipboard } from '@main/lib/utils' -import { shortenTokenAddress } from '@main/utils' +import { copyToClipboard } from '@/dex/lib/utils' +import { shortenTokenAddress } from '@/dex/utils' import Icon from '@ui/Icon' import TextEllipsis from '@ui/TextEllipsis' diff --git a/apps/main/src/dex/components/ChipToken.tsx b/apps/main/src/dex/components/ChipToken.tsx index 1c749f7bf..046a96b08 100644 --- a/apps/main/src/dex/components/ChipToken.tsx +++ b/apps/main/src/dex/components/ChipToken.tsx @@ -3,9 +3,9 @@ import type { AriaButtonProps } from 'react-aria' import { useButton } from 'react-aria' import { useMemo, useRef } from 'react' import styled from 'styled-components' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import { copyToClipboard } from '@main/lib/utils' +import { copyToClipboard } from '@/dex/lib/utils' import { formatNumberUsdRate } from '@ui/utils' import Icon from '@ui/Icon' diff --git a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBox.tsx b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBox.tsx index 42bd9cd4c..329037921 100644 --- a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBox.tsx +++ b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBox.tsx @@ -1,4 +1,4 @@ -import type { ComboBoxSelectTokenProps } from '@main/components/ComboBoxSelectToken/types' +import type { ComboBoxSelectTokenProps } from '@/dex/components/ComboBoxSelectToken/types' import React, { useEffect, useRef, useState } from 'react' import { t } from '@lingui/macro' @@ -6,20 +6,20 @@ import chunk from 'lodash/chunk' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { RCEditClear } from '@ui/images' import { StyledInput } from '@ui/InputComp/styles' import Box from '@ui/Box/Box' import Checkbox from '@ui/Checkbox' -import ComboBoxListChunk from '@main/components/ComboBoxSelectToken/ComboBoxListChunk' +import ComboBoxListChunk from '@/dex/components/ComboBoxSelectToken/ComboBoxListChunk' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton/IconButton' import InputProvider from '@ui/InputComp/InputProvider' import Popover from '@ui/Popover/Popover' import Spinner from '@ui/Spinner' import SpinnerWrapper from '@ui/Spinner/SpinnerWrapper' -import { Token } from '@main/types/main.types' +import { Token } from '@/dex/types/main.types' const ComboBox = ({ testId, diff --git a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxListChunk.tsx b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxListChunk.tsx index 8c1e9a167..218233f2a 100644 --- a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxListChunk.tsx +++ b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxListChunk.tsx @@ -1,12 +1,12 @@ -import type { ComboBoxSelectTokenProps } from '@main/components/ComboBoxSelectToken/types' +import type { ComboBoxSelectTokenProps } from '@/dex/components/ComboBoxSelectToken/types' import React, { useRef } from 'react' import styled from 'styled-components' import useIntersectionObserver from 'ui/src/hooks/useIntersectionObserver' -import SelectTokenListItem from '@main/components/ComboBoxSelectToken/ComboBoxListItem' -import { Token } from '@main/types/main.types' +import SelectTokenListItem from '@/dex/components/ComboBoxSelectToken/ComboBoxListItem' +import { Token } from '@/dex/types/main.types' const SelectTokenListChunk = ({ testId, diff --git a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxListItem.tsx b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxListItem.tsx index 55def92f3..1b21ba0dc 100644 --- a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxListItem.tsx +++ b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxListItem.tsx @@ -1,17 +1,17 @@ -import type { ComboBoxSelectTokenProps } from '@main/components/ComboBoxSelectToken/types' +import type { ComboBoxSelectTokenProps } from '@/dex/components/ComboBoxSelectToken/types' import React from 'react' import styled from 'styled-components' import { focusVisible } from '@ui/utils' -import { shortenTokenAddress } from '@main/utils' +import { shortenTokenAddress } from '@/dex/utils' import Box from '@ui/Box' import Button from '@ui/Button' import Chip from '@ui/Typography/Chip' -import SelectTokenListItemUserBalance from '@main/components/ComboBoxSelectToken/ComboBoxTokenUserBalance' -import TokenIcon from '@main/components/TokenIcon' -import { Token } from '@main/types/main.types' +import SelectTokenListItemUserBalance from '@/dex/components/ComboBoxSelectToken/ComboBoxTokenUserBalance' +import TokenIcon from '@/dex/components/TokenIcon' +import { Token } from '@/dex/types/main.types' const ComboBoxListItem = ({ imageBaseUrl, diff --git a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxSelectedToken.tsx b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxSelectedToken.tsx index 1344db310..948f5a661 100644 --- a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxSelectedToken.tsx +++ b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxSelectedToken.tsx @@ -1,12 +1,12 @@ import React from 'react' import styled from 'styled-components' -import { shortenTokenAddress } from '@main/utils' +import { shortenTokenAddress } from '@/dex/utils' import { Chip } from '@ui/Typography' import Box from '@ui/Box' -import TokenIcon from '@main/components/TokenIcon' -import { Token } from '@main/types/main.types' +import TokenIcon from '@/dex/components/TokenIcon' +import { Token } from '@/dex/types/main.types' const ComboBoxSelectedToken = ({ imageBaseUrl, diff --git a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxTokenUserBalance.tsx b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxTokenUserBalance.tsx index 65d6a1ab4..40179dc7a 100644 --- a/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxTokenUserBalance.tsx +++ b/apps/main/src/dex/components/ComboBoxSelectToken/ComboBoxTokenUserBalance.tsx @@ -1,7 +1,7 @@ import React from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import Box from '@ui/Box' import Spinner from '@ui/Spinner' diff --git a/apps/main/src/dex/components/ComboBoxSelectToken/index.tsx b/apps/main/src/dex/components/ComboBoxSelectToken/index.tsx index f6bb2075a..a0bebb71d 100644 --- a/apps/main/src/dex/components/ComboBoxSelectToken/index.tsx +++ b/apps/main/src/dex/components/ComboBoxSelectToken/index.tsx @@ -1,4 +1,4 @@ -import type { EndsWith } from '@main/components/ComboBoxSelectToken/types' +import type { EndsWith } from '@/dex/components/ComboBoxSelectToken/types' import Fuse from 'fuse.js' import React, { useCallback, useEffect, useState } from 'react' @@ -6,15 +6,15 @@ import { useFilter } from 'react-aria' import { useOverlayTriggerState } from 'react-stately' import styled from 'styled-components' -import { delayAction } from '@main/utils' -import useStore from '@main/store/useStore' +import { delayAction } from '@/dex/utils' +import useStore from '@/dex/store/useStore' -import ComboBox from '@main/components/ComboBoxSelectToken/ComboBox' -import ComboBoxSelectedToken from '@main/components/ComboBoxSelectToken/ComboBoxSelectedToken' -import ComboBoxSelectedTokenButton from '@main/components/ComboBoxSelectToken/ComboBoxSelectedTokenButton' +import ComboBox from '@/dex/components/ComboBoxSelectToken/ComboBox' +import ComboBoxSelectedToken from '@/dex/components/ComboBoxSelectToken/ComboBoxSelectedToken' +import ComboBoxSelectedTokenButton from '@/dex/components/ComboBoxSelectToken/ComboBoxSelectedTokenButton' import ModalDialog from '@ui/Dialog' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import { Token } from '@main/types/main.types' +import { Token } from '@/dex/types/main.types' const ComboBoxTokens = ({ disabled, diff --git a/apps/main/src/dex/components/ComboBoxSelectToken/types.ts b/apps/main/src/dex/components/ComboBoxSelectToken/types.ts index 5f1702244..f8a4a1e84 100644 --- a/apps/main/src/dex/components/ComboBoxSelectToken/types.ts +++ b/apps/main/src/dex/components/ComboBoxSelectToken/types.ts @@ -1,4 +1,4 @@ -import { Token } from '@main/types/main.types' +import { Token } from '@/dex/types/main.types' export type EndsWith = (string: string, substring: string) => boolean diff --git a/apps/main/src/dex/components/ConnectWallet.tsx b/apps/main/src/dex/components/ConnectWallet.tsx index 1d64d5d2d..34315ac08 100644 --- a/apps/main/src/dex/components/ConnectWallet.tsx +++ b/apps/main/src/dex/components/ConnectWallet.tsx @@ -1,5 +1,5 @@ import { isLoading } from '@ui/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import ConnectWalletPrompt from '@ui/ConnectWalletPrompt' import { useUserProfileStore } from '@ui-kit/features/user-profile' diff --git a/apps/main/src/dex/components/DetailInfoEstGas.tsx b/apps/main/src/dex/components/DetailInfoEstGas.tsx index ee0a8734c..831afcf67 100644 --- a/apps/main/src/dex/components/DetailInfoEstGas.tsx +++ b/apps/main/src/dex/components/DetailInfoEstGas.tsx @@ -3,14 +3,14 @@ import { useMemo } from 'react' import isNaN from 'lodash/isNaN' import isUndefined from 'lodash/isUndefined' import styled from 'styled-components' -import { NETWORK_TOKEN } from '@main/constants' +import { NETWORK_TOKEN } from '@/dex/constants' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { Chain, gweiToEther, weiToGwei } from '@ui-kit/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import DetailInfo from '@ui/DetailInfo' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import { useCurve } from '@main/entities/curve' -import { ChainId, EstimatedGas } from '@main/types/main.types' +import { useCurve } from '@/dex/entities/curve' +import { ChainId, EstimatedGas } from '@/dex/types/main.types' export type StepProgress = { active: number diff --git a/apps/main/src/dex/components/FormConnectWallet.tsx b/apps/main/src/dex/components/FormConnectWallet.tsx index 8c62caec0..9026209cb 100644 --- a/apps/main/src/dex/components/FormConnectWallet.tsx +++ b/apps/main/src/dex/components/FormConnectWallet.tsx @@ -2,11 +2,11 @@ import { t } from '@lingui/macro' import React from 'react' import { isLoading } from '@ui/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import Button from '@ui/Button' import Spinner from '@ui/Spinner' -import { useCurve } from '@main/entities/curve' +import { useCurve } from '@/dex/entities/curve' const FormConnectWallet = ({ loading, diff --git a/apps/main/src/dex/components/Page404/Page.tsx b/apps/main/src/dex/components/Page404/Page.tsx index 404531227..d987d4a5a 100644 --- a/apps/main/src/dex/components/Page404/Page.tsx +++ b/apps/main/src/dex/components/Page404/Page.tsx @@ -1,6 +1,6 @@ import type { NextPage } from 'next' -import DocumentHead from '@main/layout/default/DocumentHead' +import DocumentHead from '@/dex/layout/default/DocumentHead' import Error404 from '@ui/Error404' const Page: NextPage = () => ( diff --git a/apps/main/src/dex/components/PageCompensation/Page.tsx b/apps/main/src/dex/components/PageCompensation/Page.tsx index 1d6fb8f74..9c0af9a21 100644 --- a/apps/main/src/dex/components/PageCompensation/Page.tsx +++ b/apps/main/src/dex/components/PageCompensation/Page.tsx @@ -1,5 +1,5 @@ import type { NextPage } from 'next' -import type { EtherContract } from '@main/components/PageCompensation/types' +import type { EtherContract } from '@/dex/components/PageCompensation/types' import { Contract, Interface } from 'ethers' import { t } from '@lingui/macro' @@ -7,19 +7,19 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import React, { useCallback, useEffect, useState } from 'react' import styled from 'styled-components' -import { scrollToTop } from '@main/utils' -import usePageOnMount from '@main/hooks/usePageOnMount' -import useStore from '@main/store/useStore' +import { scrollToTop } from '@/dex/utils' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import useStore from '@/dex/store/useStore' import Box, { BoxHeader } from '@ui/Box' import Button from '@ui/Button' -import DocumentHead from '@main/layout/default/DocumentHead' +import DocumentHead from '@/dex/layout/default/DocumentHead' import ExternalLink from '@ui/Link/ExternalLink' -import FormCompensation from '@main/components/PageCompensation/index' +import FormCompensation from '@/dex/components/PageCompensation/index' import IconButton from '@ui/IconButton' -import Settings from '@main/layout/default/Settings' +import Settings from '@/dex/layout/default/Settings' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import { Provider } from '@main/types/main.types' +import { Provider } from '@/dex/types/main.types' const Page: NextPage = () => { const params = useParams() @@ -36,7 +36,7 @@ const Page: NextPage = () => { const fetchData = useCallback(async (provider: Provider) => { const signer = await provider.getSigner() - const contracts = await import('@main/components/PageCompensation/abis').then((modules) => + const contracts = await import('@/dex/components/PageCompensation/abis').then((modules) => Object.entries(modules).map(([, { contractAddress, abi, ...rest }]) => { const iface = new Interface(abi) const contract = new Contract(contractAddress, iface.format(), signer) diff --git a/apps/main/src/dex/components/PageCompensation/abis/index.ts b/apps/main/src/dex/components/PageCompensation/abis/index.ts index eb87ee51f..69df2b33f 100644 --- a/apps/main/src/dex/components/PageCompensation/abis/index.ts +++ b/apps/main/src/dex/components/PageCompensation/abis/index.ts @@ -1,7 +1,7 @@ -export { default as abi_1 } from '@main/components/PageCompensation/abis/0x0c9da84ef2c698EBc2b17Fb59c63FAA18e367b10.json' -export { default as abi_2 } from '@main/components/PageCompensation/abis/0x94Fd231FBAe3d66c0E1317350D708AC189c9A5cb.json' -export { default as abi_3 } from '@main/components/PageCompensation/abis/0x2fc945d48A4d61eC988F8CAbfFbe6F1EfE07137f.json' -export { default as abi_4 } from '@main/components/PageCompensation/abis/0x8CB5416edBce99AA1cAf3e16b594F97272E7b500.json' -export { default as abi_5 } from '@main/components/PageCompensation/abis/0x3D7b8d296f7D8E37ce57E556DEa3dd6CB01B2F03.json' -export { default as abi_6 } from '@main/components/PageCompensation/abis/0x72aa5fcccf0fbc5d7111ebEf5F460bBf899dacF5.json' -export { default as abi_7 } from '@main/components/PageCompensation/abis/0x3f4E97042206D50Ac2d4D0Db1B8af092239E2cCe.json' +export { default as abi_1 } from '@/dex/components/PageCompensation/abis/0x0c9da84ef2c698EBc2b17Fb59c63FAA18e367b10.json' +export { default as abi_2 } from '@/dex/components/PageCompensation/abis/0x94Fd231FBAe3d66c0E1317350D708AC189c9A5cb.json' +export { default as abi_3 } from '@/dex/components/PageCompensation/abis/0x2fc945d48A4d61eC988F8CAbfFbe6F1EfE07137f.json' +export { default as abi_4 } from '@/dex/components/PageCompensation/abis/0x8CB5416edBce99AA1cAf3e16b594F97272E7b500.json' +export { default as abi_5 } from '@/dex/components/PageCompensation/abis/0x3D7b8d296f7D8E37ce57E556DEa3dd6CB01B2F03.json' +export { default as abi_6 } from '@/dex/components/PageCompensation/abis/0x72aa5fcccf0fbc5d7111ebEf5F460bBf899dacF5.json' +export { default as abi_7 } from '@/dex/components/PageCompensation/abis/0x3f4E97042206D50Ac2d4D0Db1B8af092239E2cCe.json' diff --git a/apps/main/src/dex/components/PageCompensation/components/Compensation.tsx b/apps/main/src/dex/components/PageCompensation/components/Compensation.tsx index 80f290cb5..996ca834e 100644 --- a/apps/main/src/dex/components/PageCompensation/components/Compensation.tsx +++ b/apps/main/src/dex/components/PageCompensation/components/Compensation.tsx @@ -1,20 +1,20 @@ -import type { EtherContract } from '@main/components/PageCompensation/types' +import type { EtherContract } from '@/dex/components/PageCompensation/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useState } from 'react' import numbro from 'numbro' import styled from 'styled-components' -import { copyToClipboard } from '@main/lib/utils' -import { getErrorMessage, shortenTokenAddress } from '@main/utils' -import curvejsApi from '@main/lib/curvejs' -import useStore from '@main/store/useStore' -import { StyledIconButton } from '@main/components/PagePool/PoolDetails/PoolStats/styles' -import AlertFormError from '@main/components/AlertFormError' +import { copyToClipboard } from '@/dex/lib/utils' +import { getErrorMessage, shortenTokenAddress } from '@/dex/utils' +import curvejsApi from '@/dex/lib/curvejs' +import useStore from '@/dex/store/useStore' +import { StyledIconButton } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' +import AlertFormError from '@/dex/components/AlertFormError' import Box from '@ui/Box' import Button from '@ui/Button' import ExternalLink from '@ui/Link/ExternalLink' import Icon from '@ui/Icon' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi, ChainId, Provider } from '@main/types/main.types' +import { CurveApi, ChainId, Provider } from '@/dex/types/main.types' const Compensation = ({ rChainId, diff --git a/apps/main/src/dex/components/PageCompensation/components/Compensations.tsx b/apps/main/src/dex/components/PageCompensation/components/Compensations.tsx index 1810996df..fa14bbf42 100644 --- a/apps/main/src/dex/components/PageCompensation/components/Compensations.tsx +++ b/apps/main/src/dex/components/PageCompensation/components/Compensations.tsx @@ -1,9 +1,9 @@ -import type { Balances, EtherContract, VestedTotals } from '@main/components/PageCompensation/types' +import type { Balances, EtherContract, VestedTotals } from '@/dex/components/PageCompensation/types' import React from 'react' -import Compensation from '@main/components/PageCompensation/components/Compensation' -import { CurveApi, ChainId, Provider } from '@main/types/main.types' +import Compensation from '@/dex/components/PageCompensation/components/Compensation' +import { CurveApi, ChainId, Provider } from '@/dex/types/main.types' const Compensations = ({ poolId, diff --git a/apps/main/src/dex/components/PageCompensation/index.tsx b/apps/main/src/dex/components/PageCompensation/index.tsx index 8f164ced5..f03365904 100644 --- a/apps/main/src/dex/components/PageCompensation/index.tsx +++ b/apps/main/src/dex/components/PageCompensation/index.tsx @@ -1,15 +1,15 @@ -import type { Balances, EtherContract, VestedTotals } from '@main/components/PageCompensation/types' +import type { Balances, EtherContract, VestedTotals } from '@/dex/components/PageCompensation/types' import { Contract, ContractRunner, Interface } from 'ethers' import React, { useCallback, useEffect, useMemo, useState } from 'react' import groupBy from 'lodash/groupBy' -import { getErrorMessage } from '@main/utils' +import { getErrorMessage } from '@/dex/utils' -import AlertFormError from '@main/components/AlertFormError' +import AlertFormError from '@/dex/components/AlertFormError' import Box from '@ui/Box' -import Compensations from '@main/components/PageCompensation/components/Compensations' -import { CurveApi, ChainId, Provider } from '@main/types/main.types' +import Compensations from '@/dex/components/PageCompensation/components/Compensations' +import { CurveApi, ChainId, Provider } from '@/dex/types/main.types' const FormCompensation = ({ rChainId, @@ -78,7 +78,7 @@ const FormCompensation = ({ try { const signer = await provider.getSigner() const vestAddresses = await Promise.all(contracts.map((c) => c.contract.vest())) - const abi = await import('@main/components/PageCompensation/abis/vest_abi.json').then( + const abi = await import('@/dex/components/PageCompensation/abis/vest_abi.json').then( (module) => module.default, ) // @ts-ignore diff --git a/apps/main/src/dex/components/PageCreatePool/ConfirmModal/CreatePoolButton.tsx b/apps/main/src/dex/components/PageCreatePool/ConfirmModal/CreatePoolButton.tsx index b9fc7720e..7cd3c50eb 100644 --- a/apps/main/src/dex/components/PageCreatePool/ConfirmModal/CreatePoolButton.tsx +++ b/apps/main/src/dex/components/PageCreatePool/ConfirmModal/CreatePoolButton.tsx @@ -1,14 +1,14 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' -import { curveProps } from '@main/lib/utils' +import useStore from '@/dex/store/useStore' +import { curveProps } from '@/dex/lib/utils' import Button from '@ui/Button' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import AlertBox from '@ui/AlertBox' -import InfoLinkBar from '@main/components/PageCreatePool/ConfirmModal/CreateInfoLinkBar' -import { CurveApi } from '@main/types/main.types' +import InfoLinkBar from '@/dex/components/PageCreatePool/ConfirmModal/CreateInfoLinkBar' +import { CurveApi } from '@/dex/types/main.types' interface Props { disabled: boolean diff --git a/apps/main/src/dex/components/PageCreatePool/ConfirmModal/ModalDialog.tsx b/apps/main/src/dex/components/PageCreatePool/ConfirmModal/ModalDialog.tsx index 3523cf91b..c8bb50e7d 100644 --- a/apps/main/src/dex/components/PageCreatePool/ConfirmModal/ModalDialog.tsx +++ b/apps/main/src/dex/components/PageCreatePool/ConfirmModal/ModalDialog.tsx @@ -7,7 +7,7 @@ import React, { useRef } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import Icon from '@ui/Icon' import Box from '@ui/Box' diff --git a/apps/main/src/dex/components/PageCreatePool/ConfirmModal/index.tsx b/apps/main/src/dex/components/PageCreatePool/ConfirmModal/index.tsx index 22321378a..520d4263a 100644 --- a/apps/main/src/dex/components/PageCreatePool/ConfirmModal/index.tsx +++ b/apps/main/src/dex/components/PageCreatePool/ConfirmModal/index.tsx @@ -5,30 +5,30 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useNavigate } from 'react-router-dom' import { useParams } from 'react-router-dom' -import { getPath } from '@main/utils/utilsRouter' +import { getPath } from '@/dex/utils/utilsRouter' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { breakpoints } from '@ui/utils/responsive' -import { checkFormReady } from '@main/components/PageCreatePool/utils' +import { checkFormReady } from '@/dex/components/PageCreatePool/utils' import Icon from '@ui/Icon' import Box from '@ui/Box' import Button from '@ui/Button' import InternalLinkButton from '@ui/InternalLinkButton' import ExternalLink from '@ui/Link/ExternalLink' -import { ROUTE } from '@main/constants' +import { ROUTE } from '@/dex/constants' import Spinner from 'ui/src/Spinner/Spinner' import ModalPendingTx from 'ui/src/ModalPendingTx' -import ModalDialog from '@main/components/PageCreatePool/ConfirmModal/ModalDialog' -import CreatePoolButton from '@main/components/PageCreatePool/ConfirmModal/CreatePoolButton' -import InfoLinkBar from '@main/components/PageCreatePool/ConfirmModal/CreateInfoLinkBar' -import PoolTypeSummary from '@main/components/PageCreatePool/Summary/PoolTypeSummary' -import TokensInPoolSummary from '@main/components/PageCreatePool/Summary/TokensInPoolSummary' -import ParametersSummary from '@main/components/PageCreatePool/Summary/ParametersSummary' -import PoolInfoSummary from '@main/components/PageCreatePool/Summary/PoolInfoSummary' -import { CurveApi, ChainId } from '@main/types/main.types' +import ModalDialog from '@/dex/components/PageCreatePool/ConfirmModal/ModalDialog' +import CreatePoolButton from '@/dex/components/PageCreatePool/ConfirmModal/CreatePoolButton' +import InfoLinkBar from '@/dex/components/PageCreatePool/ConfirmModal/CreateInfoLinkBar' +import PoolTypeSummary from '@/dex/components/PageCreatePool/Summary/PoolTypeSummary' +import TokensInPoolSummary from '@/dex/components/PageCreatePool/Summary/TokensInPoolSummary' +import ParametersSummary from '@/dex/components/PageCreatePool/Summary/ParametersSummary' +import PoolInfoSummary from '@/dex/components/PageCreatePool/Summary/PoolInfoSummary' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { disabled?: boolean diff --git a/apps/main/src/dex/components/PageCreatePool/Page.tsx b/apps/main/src/dex/components/PageCreatePool/Page.tsx index 99cee94fc..80e142dca 100644 --- a/apps/main/src/dex/components/PageCreatePool/Page.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Page.tsx @@ -6,15 +6,15 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { scrollToTop } from '@main/utils' -import usePageOnMount from '@main/hooks/usePageOnMount' -import useStore from '@main/store/useStore' +import { scrollToTop } from '@/dex/utils' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import useStore from '@/dex/store/useStore' -import DocumentHead from '@main/layout/default/DocumentHead' -import PoolCreation from '@main/components/PageCreatePool/index' +import DocumentHead from '@/dex/layout/default/DocumentHead' +import PoolCreation from '@/dex/components/PageCreatePool/index' import Box from '@ui/Box' -import ConnectWallet from '@main/components/ConnectWallet' -import { CurveApi } from '@main/types/main.types' +import ConnectWallet from '@/dex/components/ConnectWallet' +import { CurveApi } from '@/dex/types/main.types' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/dex/components/PageCreatePool/Parameters/InitialPrice.tsx b/apps/main/src/dex/components/PageCreatePool/Parameters/InitialPrice.tsx index a70b63224..f23e1dbec 100644 --- a/apps/main/src/dex/components/PageCreatePool/Parameters/InitialPrice.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Parameters/InitialPrice.tsx @@ -1,14 +1,14 @@ -import { TOKEN_A, TOKEN_B, TOKEN_C } from '@main/components/PageCreatePool/constants' +import { TOKEN_A, TOKEN_B, TOKEN_C } from '@/dex/components/PageCreatePool/constants' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import Box from '@ui/Box' -import NumberField from '@main/components/PageCreatePool/components/NumberField' -import SwitchTokensButton from '@main/components/PageCreatePool/components/SwitchTokensButton' -import { CurveApi, ChainId } from '@main/types/main.types' +import NumberField from '@/dex/components/PageCreatePool/components/NumberField' +import SwitchTokensButton from '@/dex/components/PageCreatePool/components/SwitchTokensButton' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { curve: CurveApi diff --git a/apps/main/src/dex/components/PageCreatePool/Parameters/SelectPoolImplementation.tsx b/apps/main/src/dex/components/PageCreatePool/Parameters/SelectPoolImplementation.tsx index 2800264f6..2e8a2d91d 100644 --- a/apps/main/src/dex/components/PageCreatePool/Parameters/SelectPoolImplementation.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Parameters/SelectPoolImplementation.tsx @@ -2,15 +2,15 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useLingui } from '@lingui/react' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import { IMPLEMENTATION_IDS } from '@main/components/PageCreatePool/constants' +import { IMPLEMENTATION_IDS } from '@/dex/components/PageCreatePool/constants' import Checkbox from '@ui/Checkbox' import Tooltip from '@ui/Tooltip' import Icon from '@ui/Icon' import Box from '@ui/Box' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageCreatePool/Parameters/SelectPreset.tsx b/apps/main/src/dex/components/PageCreatePool/Parameters/SelectPreset.tsx index 8d78fe47a..c2dc92d61 100644 --- a/apps/main/src/dex/components/PageCreatePool/Parameters/SelectPreset.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Parameters/SelectPreset.tsx @@ -6,17 +6,17 @@ import { useButton } from '@react-aria/button' import { useOverlayTriggerState } from '@react-stately/overlays' import { useNavigate } from 'react-router-dom' import { useParams } from 'react-router-dom' -import { getPath } from '@main/utils/utilsRouter' +import { getPath } from '@/dex/utils/utilsRouter' import { breakpoints } from '@ui/utils/responsive' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import { POOL_PRESETS, STABLESWAP, CRYPTOSWAP } from '@main/components/PageCreatePool/constants' +import { POOL_PRESETS, STABLESWAP, CRYPTOSWAP } from '@/dex/components/PageCreatePool/constants' import Box from '@ui/Box' import Button from '@ui/Button' -import ModalDialog from '@main/components/PageCreatePool/ConfirmModal/ModalDialog' -import SelectButton from '@main/components/PageCreatePool/components/SelectButton' +import ModalDialog from '@/dex/components/PageCreatePool/ConfirmModal/ModalDialog' +import SelectButton from '@/dex/components/PageCreatePool/components/SelectButton' import { ExternalLink } from '@ui/Link' type Props = { diff --git a/apps/main/src/dex/components/PageCreatePool/Parameters/index.tsx b/apps/main/src/dex/components/PageCreatePool/Parameters/index.tsx index 2d0e4fa32..e1167da7e 100644 --- a/apps/main/src/dex/components/PageCreatePool/Parameters/index.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Parameters/index.tsx @@ -2,23 +2,23 @@ import { useState, useEffect, useMemo } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' import { BigNumber } from 'bignumber.js' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { STABLESWAP_MIN_MAX_PARAMETERS, TWOCRYPTO_MIN_MAX_PARAMETERS, TRICRYPTO_MIN_MAX_PARAMETERS, STABLESWAP, POOL_PRESETS, -} from '@main/components/PageCreatePool/constants' -import SelectPreset from '@main/components/PageCreatePool/Parameters/SelectPreset' -import SelectPoolImplementation from '@main/components/PageCreatePool/Parameters/SelectPoolImplementation' -import NumberField from '@main/components/PageCreatePool/components/NumberField' -import InitialPrice from '@main/components/PageCreatePool/Parameters/InitialPrice' -import Switch from '@main/components/PageCreatePool/components/Switch' -import TokenWarningBox from '@main/components/PageCreatePool/components/WarningBox' +} from '@/dex/components/PageCreatePool/constants' +import SelectPreset from '@/dex/components/PageCreatePool/Parameters/SelectPreset' +import SelectPoolImplementation from '@/dex/components/PageCreatePool/Parameters/SelectPoolImplementation' +import NumberField from '@/dex/components/PageCreatePool/components/NumberField' +import InitialPrice from '@/dex/components/PageCreatePool/Parameters/InitialPrice' +import Switch from '@/dex/components/PageCreatePool/components/Switch' +import TokenWarningBox from '@/dex/components/PageCreatePool/components/WarningBox' import Box from '@ui/Box' import Button from '@ui/Button' -import { CurveApi, ChainId } from '@main/types/main.types' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { curve: CurveApi diff --git a/apps/main/src/dex/components/PageCreatePool/PoolInfo/index.tsx b/apps/main/src/dex/components/PageCreatePool/PoolInfo/index.tsx index bc7546279..a93d5d5c6 100644 --- a/apps/main/src/dex/components/PageCreatePool/PoolInfo/index.tsx +++ b/apps/main/src/dex/components/PageCreatePool/PoolInfo/index.tsx @@ -1,11 +1,11 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' -import { STABLESWAP } from '@main/components/PageCreatePool/constants' +import useStore from '@/dex/store/useStore' +import { STABLESWAP } from '@/dex/components/PageCreatePool/constants' import Box from '@ui/Box' import Button from '@ui/Button' -import TextInput from '@main/components/PageCreatePool/components/TextInput' -import { ChainId } from '@main/types/main.types' +import TextInput from '@/dex/components/PageCreatePool/components/TextInput' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageCreatePool/PoolType/index.tsx b/apps/main/src/dex/components/PageCreatePool/PoolType/index.tsx index d94423bb8..927dbe9f3 100644 --- a/apps/main/src/dex/components/PageCreatePool/PoolType/index.tsx +++ b/apps/main/src/dex/components/PageCreatePool/PoolType/index.tsx @@ -1,10 +1,10 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' -import { STABLESWAP, CRYPTOSWAP } from '@main/components/PageCreatePool/constants' +import useStore from '@/dex/store/useStore' +import { STABLESWAP, CRYPTOSWAP } from '@/dex/components/PageCreatePool/constants' import Box from '@ui/Box' -import SelectButton from '@main/components/PageCreatePool/components/SelectButton' -import { ChainId } from '@main/types/main.types' +import SelectButton from '@/dex/components/PageCreatePool/components/SelectButton' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageCreatePool/SelectTokenModal/ComboBoxTokenPicker.tsx b/apps/main/src/dex/components/PageCreatePool/SelectTokenModal/ComboBoxTokenPicker.tsx index f45971681..5ed605d0f 100644 --- a/apps/main/src/dex/components/PageCreatePool/SelectTokenModal/ComboBoxTokenPicker.tsx +++ b/apps/main/src/dex/components/PageCreatePool/SelectTokenModal/ComboBoxTokenPicker.tsx @@ -1,4 +1,4 @@ -import { CreateToken, CreateQuickListToken } from '@main/components/PageCreatePool/types' +import { CreateToken, CreateQuickListToken } from '@/dex/components/PageCreatePool/types' import { t } from '@lingui/macro' import { useButton } from '@react-aria/button' import { useFilter } from '@react-aria/i18n' @@ -8,19 +8,19 @@ import { Item } from '@react-stately/collections' import styled from 'styled-components' import Fuse from 'fuse.js' import { breakpoints } from '@ui/utils/responsive' -import { delayAction, shortenTokenAddress } from '@main/utils' -import useStore from '@main/store/useStore' -import { STABLESWAP } from '@main/components/PageCreatePool/constants' -import ComboBox from '@main/components/PageCreatePool/SelectTokenModal/ComboBox' +import { delayAction, shortenTokenAddress } from '@/dex/utils' +import useStore from '@/dex/store/useStore' +import { STABLESWAP } from '@/dex/components/PageCreatePool/constants' +import ComboBox from '@/dex/components/PageCreatePool/SelectTokenModal/ComboBox' import Box from '@ui/Box' import Button from '@ui/Button' -import ModalDialog from '@main/components/PageCreatePool/ConfirmModal/ModalDialog' +import ModalDialog from '@/dex/components/PageCreatePool/ConfirmModal/ModalDialog' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import TokenIcon from '@main/components/TokenIcon' +import TokenIcon from '@/dex/components/TokenIcon' import { Chip } from '@ui/Typography' import LazyItem from '@ui/LazyItem' import Checkbox from '@ui/Checkbox' -import { CurveApi, ChainId } from '@main/types/main.types' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { curve: CurveApi diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/OracleSummary.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/OracleSummary.tsx index 55ccd72a9..654d4a7a9 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/OracleSummary.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/OracleSummary.tsx @@ -1,8 +1,8 @@ -import type { TokenState } from '@main/components/PageCreatePool/types' +import type { TokenState } from '@/dex/components/PageCreatePool/types' import { t } from '@lingui/macro' -import { shortenTokenAddress } from '@main/utils' +import { shortenTokenAddress } from '@/dex/utils' import styled from 'styled-components' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import Icon from '@ui/Icon' import { CategoryDataRow, @@ -11,8 +11,8 @@ import { SummaryData, SummaryDataPlaceholder, AddressLink, -} from '@main/components/PageCreatePool/Summary/styles' -import { ChainId } from '@main/types/main.types' +} from '@/dex/components/PageCreatePool/Summary/styles' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/CryptoswapParameters.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/CryptoswapParameters.tsx index 7510542bb..edb2f3332 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/CryptoswapParameters.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/CryptoswapParameters.tsx @@ -1,14 +1,14 @@ import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' -import { isTricrypto } from '@main/components/PageCreatePool/utils' +import useStore from '@/dex/store/useStore' +import { isTricrypto } from '@/dex/components/PageCreatePool/utils' import { CategoryDataRow, ExtraMarginRow, SummaryDataTitle, SummaryData, SummaryDataPlaceholder, -} from '@main/components/PageCreatePool/Summary/styles' -import { ChainId } from '@main/types/main.types' +} from '@/dex/components/PageCreatePool/Summary/styles' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/StableswapParameters.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/StableswapParameters.tsx index 1a2b9513f..b6adfeed7 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/StableswapParameters.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/StableswapParameters.tsx @@ -1,14 +1,14 @@ import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' -import { IMPLEMENTATION_IDS } from '@main/components/PageCreatePool/constants' +import useStore from '@/dex/store/useStore' +import { IMPLEMENTATION_IDS } from '@/dex/components/PageCreatePool/constants' import { CategoryDataRow, SummaryDataTitle, SummaryData, SummaryDataPlaceholder, ExtraMarginRow, -} from '@main/components/PageCreatePool/Summary/styles' -import { ChainId } from '@main/types/main.types' +} from '@/dex/components/PageCreatePool/Summary/styles' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/index.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/index.tsx index e085d2dfe..5c9fdfcdc 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/index.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/ParametersSummary/index.tsx @@ -1,15 +1,15 @@ import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import { STABLESWAP } from '@main/components/PageCreatePool/constants' +import { STABLESWAP } from '@/dex/components/PageCreatePool/constants' import Box from '@ui/Box' -import { CategoryColumn, SummaryCategoryTitle, StyledCheckmark } from '@main/components/PageCreatePool/Summary/styles' -import StableswapParameters from '@main/components/PageCreatePool/Summary/ParametersSummary/StableswapParameters' -import CryptoswapParameters from '@main/components/PageCreatePool/Summary/ParametersSummary/CryptoswapParameters' -import PoolPresetSummary from '@main/components/PageCreatePool/Summary/PoolPresetSummary' -import { ChainId } from '@main/types/main.types' +import { CategoryColumn, SummaryCategoryTitle, StyledCheckmark } from '@/dex/components/PageCreatePool/Summary/styles' +import StableswapParameters from '@/dex/components/PageCreatePool/Summary/ParametersSummary/StableswapParameters' +import CryptoswapParameters from '@/dex/components/PageCreatePool/Summary/ParametersSummary/CryptoswapParameters' +import PoolPresetSummary from '@/dex/components/PageCreatePool/Summary/PoolPresetSummary' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/PoolInfoSummary.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/PoolInfoSummary.tsx index 063e7a506..68723e5ec 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/PoolInfoSummary.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/PoolInfoSummary.tsx @@ -1,7 +1,7 @@ import { t } from '@lingui/macro' import styled from 'styled-components' -import useStore from '@main/store/useStore' -import { STABLESWAP } from '@main/components/PageCreatePool/constants' +import useStore from '@/dex/store/useStore' +import { STABLESWAP } from '@/dex/components/PageCreatePool/constants' import Box from '@ui/Box' import { CategoryColumn, @@ -11,8 +11,8 @@ import { SummaryData, SummaryDataPlaceholder, StyledCheckmark, -} from '@main/components/PageCreatePool/Summary/styles' -import { ChainId } from '@main/types/main.types' +} from '@/dex/components/PageCreatePool/Summary/styles' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/PoolPresetSummary.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/PoolPresetSummary.tsx index 34064a411..7057cffdb 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/PoolPresetSummary.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/PoolPresetSummary.tsx @@ -1,15 +1,15 @@ import { t } from '@lingui/macro' import { useLingui } from '@lingui/react' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { CategoryDataRow, SummaryDataTitle, SummaryData, SummaryDataPlaceholder, -} from '@main/components/PageCreatePool/Summary/styles' -import { POOL_PRESETS } from '@main/components/PageCreatePool/constants' +} from '@/dex/components/PageCreatePool/Summary/styles' +import { POOL_PRESETS } from '@/dex/components/PageCreatePool/constants' const PoolPresetSummary = () => { const { i18n } = useLingui() diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/PoolTypeSummary.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/PoolTypeSummary.tsx index 1e432d330..015ec532e 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/PoolTypeSummary.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/PoolTypeSummary.tsx @@ -1,9 +1,9 @@ import { t } from '@lingui/macro' import styled from 'styled-components' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import { CRYPTOSWAP } from '@main/components/PageCreatePool/constants' +import { CRYPTOSWAP } from '@/dex/components/PageCreatePool/constants' import Box from '@ui/Box' import { @@ -12,7 +12,7 @@ import { SummaryDataPlaceholder, SummaryCategoryTitle, StyledCheckmark, -} from '@main/components/PageCreatePool/Summary/styles' +} from '@/dex/components/PageCreatePool/Summary/styles' const PoolTypeSummary = () => { const { diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/TokensInPoolSummary.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/TokensInPoolSummary.tsx index 1e130e458..a750c64ce 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/TokensInPoolSummary.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/TokensInPoolSummary.tsx @@ -1,10 +1,10 @@ -import { SwapType, TokenState } from '@main/components/PageCreatePool/types' -import { STABLESWAP } from '@main/components/PageCreatePool/constants' +import { SwapType, TokenState } from '@/dex/components/PageCreatePool/types' +import { STABLESWAP } from '@/dex/components/PageCreatePool/constants' import { t } from '@lingui/macro' -import { shortenTokenAddress } from '@main/utils' +import { shortenTokenAddress } from '@/dex/utils' import styled from 'styled-components' -import useStore from '@main/store/useStore' -import { checkTokensInPoolUnset, containsOracle } from '@main/components/PageCreatePool/utils' +import useStore from '@/dex/store/useStore' +import { checkTokensInPoolUnset, containsOracle } from '@/dex/components/PageCreatePool/utils' import { TOKEN_A, TOKEN_B, @@ -14,7 +14,7 @@ import { TOKEN_F, TOKEN_G, TOKEN_H, -} from '@main/components/PageCreatePool/constants' +} from '@/dex/components/PageCreatePool/constants' import { CategoryColumn, CategoryDataColumn, @@ -26,12 +26,12 @@ import { AddressLink, ButtonTokenIcon, TokenType, -} from '@main/components/PageCreatePool/Summary/styles' -import OracleSummary from '@main/components/PageCreatePool/Summary/OracleSummary' +} from '@/dex/components/PageCreatePool/Summary/styles' +import OracleSummary from '@/dex/components/PageCreatePool/Summary/OracleSummary' import Box from '@ui/Box' import Icon from '@ui/Icon' import { Chip } from '@ui/Typography' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' type Props = { imageBaseUrl: string diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/index.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/index.tsx index 657d625f4..372cbfbac 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/index.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/index.tsx @@ -1,17 +1,17 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import { checkFormReady } from '@main/components/PageCreatePool/utils' +import { checkFormReady } from '@/dex/components/PageCreatePool/utils' -import ConfirmModal from '@main/components/PageCreatePool/ConfirmModal' +import ConfirmModal from '@/dex/components/PageCreatePool/ConfirmModal' import Box from '@ui/Box' -import PoolTypeSummary from '@main/components/PageCreatePool/Summary/PoolTypeSummary' -import TokensInPoolSummary from '@main/components/PageCreatePool/Summary/TokensInPoolSummary' -import ParametersSummary from '@main/components/PageCreatePool/Summary/ParametersSummary' -import PoolInfoSummary from '@main/components/PageCreatePool/Summary/PoolInfoSummary' -import { CurveApi, ChainId } from '@main/types/main.types' +import PoolTypeSummary from '@/dex/components/PageCreatePool/Summary/PoolTypeSummary' +import TokensInPoolSummary from '@/dex/components/PageCreatePool/Summary/TokensInPoolSummary' +import ParametersSummary from '@/dex/components/PageCreatePool/Summary/ParametersSummary' +import PoolInfoSummary from '@/dex/components/PageCreatePool/Summary/PoolInfoSummary' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { imageBaseUrl: string diff --git a/apps/main/src/dex/components/PageCreatePool/Summary/styles.tsx b/apps/main/src/dex/components/PageCreatePool/Summary/styles.tsx index 84d25149a..be6489a20 100644 --- a/apps/main/src/dex/components/PageCreatePool/Summary/styles.tsx +++ b/apps/main/src/dex/components/PageCreatePool/Summary/styles.tsx @@ -1,7 +1,7 @@ import styled from 'styled-components' import Icon from '@ui/Icon' import ExternalLink from '@ui/Link/ExternalLink' -import TokenIcon from '@main/components/TokenIcon' +import TokenIcon from '@/dex/components/TokenIcon' export const CategoryColumn = styled.div` display: flex; diff --git a/apps/main/src/dex/components/PageCreatePool/TokensInPool/SelectToken.tsx b/apps/main/src/dex/components/PageCreatePool/TokensInPool/SelectToken.tsx index 0de5b8aa7..cd8a12c23 100644 --- a/apps/main/src/dex/components/PageCreatePool/TokensInPool/SelectToken.tsx +++ b/apps/main/src/dex/components/PageCreatePool/TokensInPool/SelectToken.tsx @@ -4,10 +4,10 @@ import { TokenId, SelectTokenFormValues, TokensInPoolState, -} from '@main/components/PageCreatePool/types' +} from '@/dex/components/PageCreatePool/types' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { STABLESWAP, CRYPTOSWAP, @@ -19,14 +19,14 @@ import { TOKEN_F, TOKEN_G, TOKEN_H, -} from '@main/components/PageCreatePool/constants' -import ComboBoxTokenPicker from '@main/components/PageCreatePool/SelectTokenModal/ComboBoxTokenPicker' +} from '@/dex/components/PageCreatePool/constants' +import ComboBoxTokenPicker from '@/dex/components/PageCreatePool/SelectTokenModal/ComboBoxTokenPicker' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' import Icon from '@ui/Icon' import Button from '@ui/Button' import { Key } from 'react' -import { CurveApi, ChainId } from '@main/types/main.types' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { curve: CurveApi diff --git a/apps/main/src/dex/components/PageCreatePool/TokensInPool/SetOracle.tsx b/apps/main/src/dex/components/PageCreatePool/TokensInPool/SetOracle.tsx index af02ed487..70ffb0e1b 100644 --- a/apps/main/src/dex/components/PageCreatePool/TokensInPool/SetOracle.tsx +++ b/apps/main/src/dex/components/PageCreatePool/TokensInPool/SetOracle.tsx @@ -1,14 +1,14 @@ -import type { TokenState, TokenId } from '@main/components/PageCreatePool/types' +import type { TokenState, TokenId } from '@/dex/components/PageCreatePool/types' import styled from 'styled-components' import { t } from '@lingui/macro' import { debounce } from 'lodash' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import TextInput from '@main/components/PageCreatePool/components/TextInput' +import TextInput from '@/dex/components/PageCreatePool/components/TextInput' import Box from '@ui/Box' -import WarningBox from '@main/components/PageCreatePool/components/WarningBox' +import WarningBox from '@/dex/components/PageCreatePool/components/WarningBox' import { TOKEN_A, TOKEN_B, @@ -18,8 +18,8 @@ import { TOKEN_F, TOKEN_G, TOKEN_H, -} from '@main/components/PageCreatePool/constants' -import { validateOracleFunction } from '@main/components/PageCreatePool/utils' +} from '@/dex/components/PageCreatePool/constants' +import { validateOracleFunction } from '@/dex/components/PageCreatePool/utils' type OracleInputProps = { token: TokenState diff --git a/apps/main/src/dex/components/PageCreatePool/TokensInPool/index.tsx b/apps/main/src/dex/components/PageCreatePool/TokensInPool/index.tsx index 29756583d..c3da2275a 100644 --- a/apps/main/src/dex/components/PageCreatePool/TokensInPool/index.tsx +++ b/apps/main/src/dex/components/PageCreatePool/TokensInPool/index.tsx @@ -1,10 +1,10 @@ -import { CreateToken, TokenId, TokensInPoolState } from '@main/components/PageCreatePool/types' +import { CreateToken, TokenId, TokensInPoolState } from '@/dex/components/PageCreatePool/types' import { useMemo, useCallback } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' import { uniqBy } from 'lodash' -import useStore from '@main/store/useStore' -import useTokensMapper from '@main/hooks/useTokensMapper' +import useStore from '@/dex/store/useStore' +import useTokensMapper from '@/dex/hooks/useTokensMapper' import { STABLESWAP, CRYPTOSWAP, @@ -16,16 +16,16 @@ import { TOKEN_F, TOKEN_G, TOKEN_H, -} from '@main/components/PageCreatePool/constants' -import { DEFAULT_CREATE_POOL_STATE } from '@main/store/createCreatePoolSlice' -import { checkMetaPool, containsOracle, getBasepoolCoins } from '@main/components/PageCreatePool/utils' +} from '@/dex/components/PageCreatePool/constants' +import { DEFAULT_CREATE_POOL_STATE } from '@/dex/store/createCreatePoolSlice' +import { checkMetaPool, containsOracle, getBasepoolCoins } from '@/dex/components/PageCreatePool/utils' import Box from '@ui/Box' import Button from '@ui/Button' -import SwitchTokensButton from '@main/components/PageCreatePool/components/SwitchTokensButton' -import WarningBox from '@main/components/PageCreatePool/components/WarningBox' -import SelectToken from '@main/components/PageCreatePool/TokensInPool/SelectToken' -import SetOracle from '@main/components/PageCreatePool/TokensInPool/SetOracle' -import { CurveApi, ChainId } from '@main/types/main.types' +import SwitchTokensButton from '@/dex/components/PageCreatePool/components/SwitchTokensButton' +import WarningBox from '@/dex/components/PageCreatePool/components/WarningBox' +import SelectToken from '@/dex/components/PageCreatePool/TokensInPool/SelectToken' +import SetOracle from '@/dex/components/PageCreatePool/TokensInPool/SetOracle' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { curve: CurveApi diff --git a/apps/main/src/dex/components/PageCreatePool/components/Navigation.tsx b/apps/main/src/dex/components/PageCreatePool/components/Navigation.tsx index 2ceb593ee..4f6895cb6 100644 --- a/apps/main/src/dex/components/PageCreatePool/components/Navigation.tsx +++ b/apps/main/src/dex/components/PageCreatePool/components/Navigation.tsx @@ -1,13 +1,13 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' -import { checkFormReady } from '@main/components/PageCreatePool/utils' +import useStore from '@/dex/store/useStore' +import { checkFormReady } from '@/dex/components/PageCreatePool/utils' import Icon from '@ui/Icon' import Button from '@ui/Button' -import ConfirmModal from '@main/components/PageCreatePool/ConfirmModal' -import { CurveApi, ChainId } from '@main/types/main.types' +import ConfirmModal from '@/dex/components/PageCreatePool/ConfirmModal' +import { CurveApi, ChainId } from '@/dex/types/main.types' interface Props { navigation: number diff --git a/apps/main/src/dex/components/PageCreatePool/components/SwitchTokensButton.tsx b/apps/main/src/dex/components/PageCreatePool/components/SwitchTokensButton.tsx index f90b91cfe..18badf335 100644 --- a/apps/main/src/dex/components/PageCreatePool/components/SwitchTokensButton.tsx +++ b/apps/main/src/dex/components/PageCreatePool/components/SwitchTokensButton.tsx @@ -1,7 +1,7 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { TOKEN_A, TOKEN_B, @@ -11,11 +11,11 @@ import { TOKEN_F, TOKEN_G, TOKEN_H, -} from '@main/components/PageCreatePool/constants' +} from '@/dex/components/PageCreatePool/constants' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' -import { CurveApi, ChainId } from '@main/types/main.types' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { curve: CurveApi diff --git a/apps/main/src/dex/components/PageCreatePool/constants.ts b/apps/main/src/dex/components/PageCreatePool/constants.ts index cda157ee1..085cebf4b 100644 --- a/apps/main/src/dex/components/PageCreatePool/constants.ts +++ b/apps/main/src/dex/components/PageCreatePool/constants.ts @@ -1,8 +1,8 @@ -import type { ImplementationId } from '@main/components/PageCreatePool/types' +import type { ImplementationId } from '@/dex/components/PageCreatePool/types' import BigNumber from 'bignumber.js' import { t } from '@lingui/macro' -import { NativeToken } from '@main/types/main.types' +import { NativeToken } from '@/dex/types/main.types' export const CRYPTOSWAP = 'Cryptoswap' export const STABLESWAP = 'Stableswap' diff --git a/apps/main/src/dex/components/PageCreatePool/index.tsx b/apps/main/src/dex/components/PageCreatePool/index.tsx index 53b96c2a5..67d12ba3f 100644 --- a/apps/main/src/dex/components/PageCreatePool/index.tsx +++ b/apps/main/src/dex/components/PageCreatePool/index.tsx @@ -1,8 +1,8 @@ import { useCallback, useEffect } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' -import { curveProps } from '@main/lib/utils' -import useStore from '@main/store/useStore' +import { curveProps } from '@/dex/lib/utils' +import useStore from '@/dex/store/useStore' import { checkSwapType, checkTokensInPool, @@ -10,21 +10,21 @@ import { checkFormReady, oraclesReady, checkPoolInfo, -} from '@main/components/PageCreatePool/utils' -import { STABLESWAP, CRYPTOSWAP } from '@main/components/PageCreatePool/constants' +} from '@/dex/components/PageCreatePool/utils' +import { STABLESWAP, CRYPTOSWAP } from '@/dex/components/PageCreatePool/constants' import Spinner from '@ui/Spinner' import Icon from '@ui/Icon' import Box from '@ui/Box' import Button from '@ui/Button' -import ConfirmModal from '@main/components/PageCreatePool/ConfirmModal' -import Navigation from '@main/components/PageCreatePool/components/Navigation' -import PoolType from '@main/components/PageCreatePool/PoolType' -import TokensInPool from '@main/components/PageCreatePool/TokensInPool' -import PoolInfo from '@main/components/PageCreatePool/PoolInfo' -import Summary from '@main/components/PageCreatePool/Summary' -import Parameters from '@main/components/PageCreatePool/Parameters' -import InfoBox from '@main/components/PageCreatePool/components/InfoBox' -import { CurveApi, ChainId } from '@main/types/main.types' +import ConfirmModal from '@/dex/components/PageCreatePool/ConfirmModal' +import Navigation from '@/dex/components/PageCreatePool/components/Navigation' +import PoolType from '@/dex/components/PageCreatePool/PoolType' +import TokensInPool from '@/dex/components/PageCreatePool/TokensInPool' +import PoolInfo from '@/dex/components/PageCreatePool/PoolInfo' +import Summary from '@/dex/components/PageCreatePool/Summary' +import Parameters from '@/dex/components/PageCreatePool/Parameters' +import InfoBox from '@/dex/components/PageCreatePool/components/InfoBox' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { curve: CurveApi diff --git a/apps/main/src/dex/components/PageCreatePool/types.ts b/apps/main/src/dex/components/PageCreatePool/types.ts index bb964b635..f14f02f3f 100644 --- a/apps/main/src/dex/components/PageCreatePool/types.ts +++ b/apps/main/src/dex/components/PageCreatePool/types.ts @@ -1,4 +1,4 @@ -import type { CreatePoolSlice } from '@main/store/createCreatePoolSlice' +import type { CreatePoolSlice } from '@/dex/store/createCreatePoolSlice' import { CRYPTOSWAP, @@ -11,7 +11,7 @@ import { TOKEN_F, TOKEN_G, TOKEN_H, -} from '@main/components/PageCreatePool/constants' +} from '@/dex/components/PageCreatePool/constants' export type CreateToken = { address: string diff --git a/apps/main/src/dex/components/PageCreatePool/utils.ts b/apps/main/src/dex/components/PageCreatePool/utils.ts index b33eba47a..a96fb030b 100644 --- a/apps/main/src/dex/components/PageCreatePool/utils.ts +++ b/apps/main/src/dex/components/PageCreatePool/utils.ts @@ -1,7 +1,7 @@ -import type { SwapType, TokenState } from '@main/components/PageCreatePool/types' +import type { SwapType, TokenState } from '@/dex/components/PageCreatePool/types' -import { STABLESWAP, CRYPTOSWAP } from '@main/components/PageCreatePool/constants' -import { BasePool } from '@main/types/main.types' +import { STABLESWAP, CRYPTOSWAP } from '@/dex/components/PageCreatePool/constants' +import { BasePool } from '@/dex/types/main.types' export const checkSwapType = (swapType: SwapType) => swapType !== '' diff --git a/apps/main/src/dex/components/PageCrvLocker/Page.tsx b/apps/main/src/dex/components/PageCrvLocker/Page.tsx index d8af882f4..f83d96a73 100644 --- a/apps/main/src/dex/components/PageCrvLocker/Page.tsx +++ b/apps/main/src/dex/components/PageCrvLocker/Page.tsx @@ -1,24 +1,24 @@ import type { NextPage } from 'next' -import type { FormType } from '@main/components/PageCrvLocker/types' +import type { FormType } from '@/dex/components/PageCrvLocker/types' import { t } from '@lingui/macro' import { useLocation, useNavigate, useParams } from 'react-router-dom' import React, { useCallback, useEffect } from 'react' import styled from 'styled-components' -import { ROUTE } from '@main/constants' -import { getPath } from '@main/utils/utilsRouter' -import { scrollToTop } from '@main/utils' -import usePageOnMount from '@main/hooks/usePageOnMount' -import useStore from '@main/store/useStore' +import { ROUTE } from '@/dex/constants' +import { getPath } from '@/dex/utils/utilsRouter' +import { scrollToTop } from '@/dex/utils' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import useStore from '@/dex/store/useStore' import Box, { BoxHeader } from '@ui/Box' -import DocumentHead from '@main/layout/default/DocumentHead' -import FormCrvLocker from '@main/components/PageCrvLocker/index' +import DocumentHead from '@/dex/layout/default/DocumentHead' +import FormCrvLocker from '@/dex/components/PageCrvLocker/index' import IconButton from '@ui/IconButton' -import Settings from '@main/layout/default/Settings' +import Settings from '@/dex/layout/default/Settings' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import { CurveApi } from '@main/types/main.types' +import { CurveApi } from '@/dex/types/main.types' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/dex/components/PageCrvLocker/components/FieldDatePicker.tsx b/apps/main/src/dex/components/PageCrvLocker/components/FieldDatePicker.tsx index 3b936f270..842076293 100644 --- a/apps/main/src/dex/components/PageCrvLocker/components/FieldDatePicker.tsx +++ b/apps/main/src/dex/components/PageCrvLocker/components/FieldDatePicker.tsx @@ -1,18 +1,18 @@ import type { DateValue } from '@internationalized/date' -import type { FormType, VecrvInfo } from '@main/components/PageCrvLocker/types' +import type { FormType, VecrvInfo } from '@/dex/components/PageCrvLocker/types' import { t } from '@lingui/macro' import React, { useMemo, useState } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { formatDisplayDate, toCalendarDate } from '@main/utils/utilsDates' +import { formatDisplayDate, toCalendarDate } from '@/dex/utils/utilsDates' import dayjs from '@ui-kit/lib/dayjs' import { Chip } from '@ui/Typography' import Button from '@ui/Button' import DatePicker from '@ui/DatePicker' -import { CurveApi } from '@main/types/main.types' +import { CurveApi } from '@/dex/types/main.types' const QUICK_ACTIONS: { unit: dayjs.ManipulateType; value: number; label: string }[] = [ { unit: 'week', value: 1, label: t`1 week` }, diff --git a/apps/main/src/dex/components/PageCrvLocker/components/FieldLockedAmt.tsx b/apps/main/src/dex/components/PageCrvLocker/components/FieldLockedAmt.tsx index 0813f4eff..27c8de680 100644 --- a/apps/main/src/dex/components/PageCrvLocker/components/FieldLockedAmt.tsx +++ b/apps/main/src/dex/components/PageCrvLocker/components/FieldLockedAmt.tsx @@ -1,4 +1,4 @@ -import type { FormType, VecrvInfo } from '@main/components/PageCrvLocker/types' +import type { FormType, VecrvInfo } from '@/dex/components/PageCrvLocker/types' import { t } from '@lingui/macro' import React from 'react' diff --git a/apps/main/src/dex/components/PageCrvLocker/components/FormActions.tsx b/apps/main/src/dex/components/PageCrvLocker/components/FormActions.tsx index dccc5f97f..88083cc23 100644 --- a/apps/main/src/dex/components/PageCrvLocker/components/FormActions.tsx +++ b/apps/main/src/dex/components/PageCrvLocker/components/FormActions.tsx @@ -1,7 +1,7 @@ import React from 'react' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import Button from '@ui/Button' import Spinner from '@ui/Spinner' diff --git a/apps/main/src/dex/components/PageCrvLocker/components/FormLockCreate.tsx b/apps/main/src/dex/components/PageCrvLocker/components/FormLockCreate.tsx index 79b5e5091..2be2a69e1 100644 --- a/apps/main/src/dex/components/PageCrvLocker/components/FormLockCreate.tsx +++ b/apps/main/src/dex/components/PageCrvLocker/components/FormLockCreate.tsx @@ -1,26 +1,26 @@ -import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@main/components/PageCrvLocker/types' +import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@/dex/components/PageCrvLocker/types' import type { DateValue } from '@react-types/calendar' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_FORM_EST_GAS } from '@main/components/PageCrvLocker/utils' -import { REFRESH_INTERVAL } from '@main/constants' +import { DEFAULT_FORM_EST_GAS } from '@/dex/components/PageCrvLocker/utils' +import { REFRESH_INTERVAL } from '@/dex/constants' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import { formatDisplayDate, toCalendarDate } from '@main/utils/utilsDates' +import { formatDisplayDate, toCalendarDate } from '@/dex/utils/utilsDates' import { formatNumber } from '@ui/utils' -import curvejsApi from '@main/lib/curvejs' -import usePageVisibleInterval from '@main/hooks/usePageVisibleInterval' +import curvejsApi from '@/dex/lib/curvejs' +import usePageVisibleInterval from '@/dex/hooks/usePageVisibleInterval' import dayjs from '@ui-kit/lib/dayjs' -import useStore from '@main/store/useStore' -import AlertFormError from '@main/components/AlertFormError' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import FormActions from '@main/components/PageCrvLocker/components/FormActions' -import FieldDatePicker from '@main/components/PageCrvLocker/components/FieldDatePicker' -import FieldLockedAmt from '@main/components/PageCrvLocker/components/FieldLockedAmt' +import useStore from '@/dex/store/useStore' +import AlertFormError from '@/dex/components/AlertFormError' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import FormActions from '@/dex/components/PageCrvLocker/components/FormActions' +import FieldDatePicker from '@/dex/components/PageCrvLocker/components/FieldDatePicker' +import FieldLockedAmt from '@/dex/components/PageCrvLocker/components/FieldLockedAmt' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi } from '@main/types/main.types' +import { CurveApi } from '@/dex/types/main.types' const FormLockCreate = ({ curve, rChainId, rFormType, vecrvInfo }: PageVecrv) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dex/components/PageCrvLocker/components/FormLockCrv.tsx b/apps/main/src/dex/components/PageCrvLocker/components/FormLockCrv.tsx index 9de0f587c..c38881721 100644 --- a/apps/main/src/dex/components/PageCrvLocker/components/FormLockCrv.tsx +++ b/apps/main/src/dex/components/PageCrvLocker/components/FormLockCrv.tsx @@ -1,20 +1,20 @@ -import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@main/components/PageCrvLocker/types' +import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@/dex/components/PageCrvLocker/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_FORM_EST_GAS } from '@main/components/PageCrvLocker/utils' -import { REFRESH_INTERVAL } from '@main/constants' +import { DEFAULT_FORM_EST_GAS } from '@/dex/components/PageCrvLocker/utils' +import { REFRESH_INTERVAL } from '@/dex/constants' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import usePageVisibleInterval from '@main/hooks/usePageVisibleInterval' -import useStore from '@main/store/useStore' -import AlertFormError from '@main/components/AlertFormError' -import FormActions from '@main/components/PageCrvLocker/components/FormActions' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import FieldLockedAmt from '@main/components/PageCrvLocker/components/FieldLockedAmt' +import usePageVisibleInterval from '@/dex/hooks/usePageVisibleInterval' +import useStore from '@/dex/store/useStore' +import AlertFormError from '@/dex/components/AlertFormError' +import FormActions from '@/dex/components/PageCrvLocker/components/FormActions' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import FieldLockedAmt from '@/dex/components/PageCrvLocker/components/FieldLockedAmt' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi } from '@main/types/main.types' +import { CurveApi } from '@/dex/types/main.types' const FormLockCrv = ({ curve, rChainId, rFormType, vecrvInfo }: PageVecrv) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dex/components/PageCrvLocker/components/FormLockDate.tsx b/apps/main/src/dex/components/PageCrvLocker/components/FormLockDate.tsx index c45311e93..2f27ebabd 100644 --- a/apps/main/src/dex/components/PageCrvLocker/components/FormLockDate.tsx +++ b/apps/main/src/dex/components/PageCrvLocker/components/FormLockDate.tsx @@ -1,25 +1,25 @@ -import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@main/components/PageCrvLocker/types' +import type { PageVecrv, FormEstGas, FormStatus, FormValues, StepKey } from '@/dex/components/PageCrvLocker/types' import type { DateValue } from '@react-types/calendar' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_FORM_EST_GAS } from '@main/components/PageCrvLocker/utils' -import { REFRESH_INTERVAL } from '@main/constants' +import { DEFAULT_FORM_EST_GAS } from '@/dex/components/PageCrvLocker/utils' +import { REFRESH_INTERVAL } from '@/dex/constants' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import { formatDisplayDate, toCalendarDate } from '@main/utils/utilsDates' -import curvejsApi from '@main/lib/curvejs' +import { formatDisplayDate, toCalendarDate } from '@/dex/utils/utilsDates' +import curvejsApi from '@/dex/lib/curvejs' import dayjs from '@ui-kit/lib/dayjs' -import usePageVisibleInterval from '@main/hooks/usePageVisibleInterval' -import useStore from '@main/store/useStore' +import usePageVisibleInterval from '@/dex/hooks/usePageVisibleInterval' +import useStore from '@/dex/store/useStore' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@main/components/AlertFormError' -import FormActions from '@main/components/PageCrvLocker/components/FormActions' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import FieldDatePicker from '@main/components/PageCrvLocker/components/FieldDatePicker' +import AlertFormError from '@/dex/components/AlertFormError' +import FormActions from '@/dex/components/PageCrvLocker/components/FormActions' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import FieldDatePicker from '@/dex/components/PageCrvLocker/components/FieldDatePicker' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi } from '@main/types/main.types' +import { CurveApi } from '@/dex/types/main.types' const FormLockDate = ({ curve, rChainId, rFormType, vecrvInfo }: PageVecrv) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dex/components/PageCrvLocker/index.tsx b/apps/main/src/dex/components/PageCrvLocker/index.tsx index 2eabf3e1f..3eb897f33 100644 --- a/apps/main/src/dex/components/PageCrvLocker/index.tsx +++ b/apps/main/src/dex/components/PageCrvLocker/index.tsx @@ -1,15 +1,15 @@ -import type { FormType, PageVecrv } from '@main/components/PageCrvLocker/types' +import type { FormType, PageVecrv } from '@/dex/components/PageCrvLocker/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import TabSlide, { SlideTab, SlideTabs } from '@ui/TabSlide' -import FormLockCreate from '@main/components/PageCrvLocker/components/FormLockCreate' -import FormLockCrv from '@main/components/PageCrvLocker/components/FormLockCrv' -import FormLockDate from '@main/components/PageCrvLocker/components/FormLockDate' +import FormLockCreate from '@/dex/components/PageCrvLocker/components/FormLockCreate' +import FormLockCrv from '@/dex/components/PageCrvLocker/components/FormLockCrv' +import FormLockDate from '@/dex/components/PageCrvLocker/components/FormLockDate' const FormCrvLocker = (pageProps: PageVecrv) => { const { curve, rFormType, vecrvInfo, toggleForm } = pageProps diff --git a/apps/main/src/dex/components/PageCrvLocker/types.ts b/apps/main/src/dex/components/PageCrvLocker/types.ts index 1fb69b8b2..4cb7e907c 100644 --- a/apps/main/src/dex/components/PageCrvLocker/types.ts +++ b/apps/main/src/dex/components/PageCrvLocker/types.ts @@ -1,5 +1,5 @@ import { DateValue } from '@react-types/calendar' -import { CurveApi, ChainId, EstimatedGas } from '@main/types/main.types' +import { CurveApi, ChainId, EstimatedGas } from '@/dex/types/main.types' export type FormType = 'create' | 'adjust_crv' | 'adjust_date' export type StepKey = 'APPROVE' | 'CREATE_LOCK' | 'INCREASE_CRV' | 'INCREASE_TIME' | 'APPROVAL' | 'WITHDRAW' | '' diff --git a/apps/main/src/dex/components/PageCrvLocker/utils.ts b/apps/main/src/dex/components/PageCrvLocker/utils.ts index 17fc354e0..4ea4f23cf 100644 --- a/apps/main/src/dex/components/PageCrvLocker/utils.ts +++ b/apps/main/src/dex/components/PageCrvLocker/utils.ts @@ -1,4 +1,4 @@ -import type { FormEstGas, FormStatus, FormValues, VecrvInfo } from '@main/components/PageCrvLocker/types' +import type { FormEstGas, FormStatus, FormValues, VecrvInfo } from '@/dex/components/PageCrvLocker/types' export const DEFAULT_USER_LOCKED_CRV_INFO: VecrvInfo = { crv: '0', diff --git a/apps/main/src/dex/components/PageDashboard/Page.tsx b/apps/main/src/dex/components/PageDashboard/Page.tsx index 458c11f7f..9941e6c8b 100644 --- a/apps/main/src/dex/components/PageDashboard/Page.tsx +++ b/apps/main/src/dex/components/PageDashboard/Page.tsx @@ -6,15 +6,15 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { scrollToTop } from '@main/utils' -import usePageOnMount from '@main/hooks/usePageOnMount' -import useStore from '@main/store/useStore' +import { scrollToTop } from '@/dex/utils' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import useStore from '@/dex/store/useStore' -import Dashboard from '@main/components/PageDashboard/index' -import DocumentHead from '@main/layout/default/DocumentHead' -import Settings from '@main/layout/default/Settings' +import Dashboard from '@/dex/components/PageDashboard/index' +import DocumentHead from '@/dex/layout/default/DocumentHead' +import Settings from '@/dex/layout/default/Settings' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import ConnectWallet from '@main/components/ConnectWallet' +import ConnectWallet from '@/dex/components/ConnectWallet' import Box from '@ui/Box' const Page: NextPage = () => { diff --git a/apps/main/src/dex/components/PageDashboard/components/ClassicPoolsOnlyDescription.tsx b/apps/main/src/dex/components/PageDashboard/components/ClassicPoolsOnlyDescription.tsx index ffbcdcd18..5fc53583e 100644 --- a/apps/main/src/dex/components/PageDashboard/components/ClassicPoolsOnlyDescription.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/ClassicPoolsOnlyDescription.tsx @@ -1,9 +1,9 @@ import { Fragment } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' import { ExternalLink } from '@ui/Link' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' const ClassicPoolsOnlyDescription = () => { const { rChainId, signerAddress } = useDashboardContext() diff --git a/apps/main/src/dex/components/PageDashboard/components/FormClaimFees.tsx b/apps/main/src/dex/components/PageDashboard/components/FormClaimFees.tsx index 78bbfe6bf..65417802d 100644 --- a/apps/main/src/dex/components/PageDashboard/components/FormClaimFees.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/FormClaimFees.tsx @@ -4,14 +4,14 @@ import React, { useState } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' -import { DEFAULT_FORM_STATUS } from '@main/components/PageDashboard/utils' +import { DEFAULT_FORM_STATUS } from '@/dex/components/PageDashboard/utils' import { breakpoints } from '@ui/utils/responsive' import { formatNumber } from '@ui/utils' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' -import useStore from '@main/store/useStore' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' +import useStore from '@/dex/store/useStore' -import AlertFormError from '@main/components/AlertFormError' -import FormClaimFeesButtons from '@main/components/PageDashboard/components/FormClaimFeesButtons' +import AlertFormError from '@/dex/components/AlertFormError' +import FormClaimFeesButtons from '@/dex/components/PageDashboard/components/FormClaimFeesButtons' import IconTooltip from '@ui/Tooltip/TooltipIcon' export enum claimButtonsKey { diff --git a/apps/main/src/dex/components/PageDashboard/components/FormClaimFeesButtons.tsx b/apps/main/src/dex/components/PageDashboard/components/FormClaimFeesButtons.tsx index 495584605..ff3cbf31a 100644 --- a/apps/main/src/dex/components/PageDashboard/components/FormClaimFeesButtons.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/FormClaimFeesButtons.tsx @@ -2,10 +2,10 @@ import type { ButtonProps } from '@ui/Button/types' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useMemo, useState } from 'react' import { t } from '@lingui/macro' -import { DEFAULT_FORM_STATUS } from '@main/components/PageDashboard/utils' -import { claimButtonsKey } from '@main/components/PageDashboard/components/FormClaimFees' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' -import useStore from '@main/store/useStore' +import { DEFAULT_FORM_STATUS } from '@/dex/components/PageDashboard/utils' +import { claimButtonsKey } from '@/dex/components/PageDashboard/components/FormClaimFees' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' +import useStore from '@/dex/store/useStore' import Button from '@ui/Button' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' diff --git a/apps/main/src/dex/components/PageDashboard/components/FormVecrv.tsx b/apps/main/src/dex/components/PageDashboard/components/FormVecrv.tsx index 1d4c6baf5..bfc163bb3 100644 --- a/apps/main/src/dex/components/PageDashboard/components/FormVecrv.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/FormVecrv.tsx @@ -1,28 +1,28 @@ import type { Step } from '@ui/Stepper/types' -import type { FormStatus } from '@main/components/PageDashboard/types' +import type { FormStatus } from '@/dex/components/PageDashboard/types' import React, { useCallback, useEffect, useRef, useState } from 'react' import { t, Trans } from '@lingui/macro' import { useParams } from 'react-router-dom' import styled from 'styled-components' -import { ROUTE } from '@main/constants' +import { ROUTE } from '@/dex/constants' import { breakpoints } from '@ui/utils/responsive' -import { DEFAULT_FORM_STATUS, getIsLockExpired } from '@main/components/PageDashboard/utils' -import { getPath } from '@main/utils/utilsRouter' +import { DEFAULT_FORM_STATUS, getIsLockExpired } from '@/dex/components/PageDashboard/utils' +import { getPath } from '@/dex/utils/utilsRouter' import { getStepStatus } from '@ui/Stepper/helpers' import { formatNumber } from '@ui/utils' import dayjs from '@ui-kit/lib/dayjs' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' -import useStore from '@main/store/useStore' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' +import useStore from '@/dex/store/useStore' import { Chip } from '@ui/Typography' import { InternalLink } from '@ui/Link' import { Items } from '@ui/Items' -import { SummaryInnerContent } from '@main/components/PageDashboard/components/Summary' -import { Title } from '@main/components/PageDashboard/styles' +import { SummaryInnerContent } from '@/dex/components/PageDashboard/components/Summary' +import { Title } from '@/dex/components/PageDashboard/styles' import AlertBox from '@ui/AlertBox' import Button from '@ui/Button' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi } from '@main/types/main.types' +import { CurveApi } from '@/dex/types/main.types' // TODO uncomment locker link code once it is ready const FormVecrv = () => { diff --git a/apps/main/src/dex/components/PageDashboard/components/Summary.tsx b/apps/main/src/dex/components/PageDashboard/components/Summary.tsx index b601405ae..68b0c978b 100644 --- a/apps/main/src/dex/components/PageDashboard/components/Summary.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/Summary.tsx @@ -7,18 +7,18 @@ import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' import { shortenAccount } from '@ui/utils' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' -import useStore from '@main/store/useStore' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' +import useStore from '@/dex/store/useStore' import Box from '@ui/Box' -import ComboBoxAddress from '@main/components/PageDashboard/components/ComboBoxAddress' -import FormClaimFees from '@main/components/PageDashboard/components/FormClaimFees' -import FormVecrv from '@main/components/PageDashboard/components/FormVecrv' +import ComboBoxAddress from '@/dex/components/PageDashboard/components/ComboBoxAddress' +import FormClaimFees from '@/dex/components/PageDashboard/components/FormClaimFees' +import FormVecrv from '@/dex/components/PageDashboard/components/FormVecrv' import { SpinnerWrapper } from '@ui/Spinner' import Stats from '@ui/Stats' -import SummaryClaimable from '@main/components/PageDashboard/components/SummaryClaimable' -import SummaryRecurrence from '@main/components/PageDashboard/components/SummaryRecurrence' -import SummaryTotal from '@main/components/PageDashboard/components/SummaryTotal' +import SummaryClaimable from '@/dex/components/PageDashboard/components/SummaryClaimable' +import SummaryRecurrence from '@/dex/components/PageDashboard/components/SummaryRecurrence' +import SummaryTotal from '@/dex/components/PageDashboard/components/SummaryTotal' import TabSlide, { SlideTab, SlideTabs } from '@ui/TabSlide' type SlideKey = 'DAY_PROFITS' | 'CLAIMABLE_TOKENS' diff --git a/apps/main/src/dex/components/PageDashboard/components/SummaryClaimable.tsx b/apps/main/src/dex/components/PageDashboard/components/SummaryClaimable.tsx index bf8c0abc2..d51041526 100644 --- a/apps/main/src/dex/components/PageDashboard/components/SummaryClaimable.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/SummaryClaimable.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from 'react' import { t } from '@lingui/macro' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' import { StyledStats, @@ -10,7 +10,7 @@ import { SummaryInnerContent, SummarySpinnerWrapper, tooltipProps, -} from '@main/components/PageDashboard/components/Summary' +} from '@/dex/components/PageDashboard/components/Summary' import Chip from '@ui/Typography/Chip' import Spinner from '@ui/Spinner' import Stats from '@ui/Stats' diff --git a/apps/main/src/dex/components/PageDashboard/components/SummaryRecurrence.tsx b/apps/main/src/dex/components/PageDashboard/components/SummaryRecurrence.tsx index 32c275afe..6747b0ebb 100644 --- a/apps/main/src/dex/components/PageDashboard/components/SummaryRecurrence.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/SummaryRecurrence.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from 'react' import { t } from '@lingui/macro' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' import { StyledStats, @@ -10,7 +10,7 @@ import { SummarySpinnerWrapper, SummaryTitle, tooltipProps, -} from '@main/components/PageDashboard/components/Summary' +} from '@/dex/components/PageDashboard/components/Summary' import Chip from '@ui/Typography/Chip' import Stats from '@ui/Stats' import Spinner from '@ui/Spinner' diff --git a/apps/main/src/dex/components/PageDashboard/components/SummaryTotal.tsx b/apps/main/src/dex/components/PageDashboard/components/SummaryTotal.tsx index d42cbd5d1..9d894f111 100644 --- a/apps/main/src/dex/components/PageDashboard/components/SummaryTotal.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/SummaryTotal.tsx @@ -3,13 +3,13 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' import { StyledTotalBalanceWrapper, SummaryInnerContent, SummarySpinnerWrapper, -} from '@main/components/PageDashboard/components/Summary' +} from '@/dex/components/PageDashboard/components/Summary' import { Chip } from '@ui/Typography' import Spinner from '@ui/Spinner' diff --git a/apps/main/src/dex/components/PageDashboard/components/TableCellBalances.tsx b/apps/main/src/dex/components/PageDashboard/components/TableCellBalances.tsx index 6c1f7dc06..a98179087 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableCellBalances.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableCellBalances.tsx @@ -1,12 +1,12 @@ -import type { WalletPoolData } from '@main/components/PageDashboard/types' +import type { WalletPoolData } from '@/dex/components/PageDashboard/types' import React from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { tooltipProps } from '@main/components/PageDashboard/components/Summary' +import { tooltipProps } from '@/dex/components/PageDashboard/components/Summary' import { Chip } from '@ui/Typography' -import { DetailText } from '@main/components/PageDashboard/components/TableRow' +import { DetailText } from '@/dex/components/PageDashboard/components/TableRow' type Props = Pick & { isHighLight: boolean diff --git a/apps/main/src/dex/components/PageDashboard/components/TableCellClaimables.tsx b/apps/main/src/dex/components/PageDashboard/components/TableCellClaimables.tsx index 3a48a938c..8895f823e 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableCellClaimables.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableCellClaimables.tsx @@ -1,11 +1,11 @@ -import type { WalletPoolData } from '@main/components/PageDashboard/types' +import type { WalletPoolData } from '@/dex/components/PageDashboard/types' import React from 'react' import { t } from '@lingui/macro' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { DetailText, Info } from '@main/components/PageDashboard/components/TableRow' +import { DetailText, Info } from '@/dex/components/PageDashboard/components/TableRow' type Props = Pick & { isMobile?: boolean diff --git a/apps/main/src/dex/components/PageDashboard/components/TableCellProfit.tsx b/apps/main/src/dex/components/PageDashboard/components/TableCellProfit.tsx index 06d419547..9e341b2d3 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableCellProfit.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableCellProfit.tsx @@ -1,10 +1,10 @@ -import type { WalletPoolData, SortId } from '@main/components/PageDashboard/types' +import type { WalletPoolData, SortId } from '@/dex/components/PageDashboard/types' import React, { useMemo } from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { DetailText, Info } from '@main/components/PageDashboard/components/TableRow' +import { DetailText, Info } from '@/dex/components/PageDashboard/components/TableRow' type Props = Pick & { sortBy: SortId diff --git a/apps/main/src/dex/components/PageDashboard/components/TableCellRewards.tsx b/apps/main/src/dex/components/PageDashboard/components/TableCellRewards.tsx index 01ae5517d..ad5aa00b7 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableCellRewards.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableCellRewards.tsx @@ -1,18 +1,18 @@ -import type { SortId } from '@main/components/PageDashboard/types' +import type { SortId } from '@/dex/components/PageDashboard/types' import styled from 'styled-components' -import { SORT_ID } from '@main/components/PageDashboard/utils' +import { SORT_ID } from '@/dex/components/PageDashboard/utils' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { haveRewardsApy } from '@main/utils/utilsCurvejs' +import { haveRewardsApy } from '@/dex/utils/utilsCurvejs' import { Chip } from '@ui/Typography' -import { DetailText } from '@main/components/PageDashboard/components/TableRow' -import PoolRewardsCrv from '@main/components/PoolRewardsCrv' -import TableCellRewardsTooltip from '@main/components/PageDashboard/components/TableCellRewardsTooltip' -import TableCellRewardsBase from '@main/components/PagePoolList/components/TableCellRewardsBase' -import TableCellRewardsOthers from '@main/components/PagePoolList/components/TableCellRewardsOthers' -import { RewardsApy, PoolData } from '@main/types/main.types' +import { DetailText } from '@/dex/components/PageDashboard/components/TableRow' +import PoolRewardsCrv from '@/dex/components/PoolRewardsCrv' +import TableCellRewardsTooltip from '@/dex/components/PageDashboard/components/TableCellRewardsTooltip' +import TableCellRewardsBase from '@/dex/components/PagePoolList/components/TableCellRewardsBase' +import TableCellRewardsOthers from '@/dex/components/PagePoolList/components/TableCellRewardsOthers' +import { RewardsApy, PoolData } from '@/dex/types/main.types' const TableCellRewards = ({ poolData, diff --git a/apps/main/src/dex/components/PageDashboard/components/TableCellRewardsTooltip.tsx b/apps/main/src/dex/components/PageDashboard/components/TableCellRewardsTooltip.tsx index 9f13cc12d..fe58c43de 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableCellRewardsTooltip.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableCellRewardsTooltip.tsx @@ -3,9 +3,9 @@ import { useEffect, useRef, useState } from 'react' import styled from 'styled-components' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { rewardsApyCrvText } from '@main/utils/utilsCurvejs' +import { rewardsApyCrvText } from '@/dex/utils/utilsCurvejs' import Box from '@ui/Box' -import { RewardCrv } from '@main/types/main.types' +import { RewardCrv } from '@/dex/types/main.types' type Props = { crv?: RewardCrv[] diff --git a/apps/main/src/dex/components/PageDashboard/components/TableHead.tsx b/apps/main/src/dex/components/PageDashboard/components/TableHead.tsx index 0536b3da9..3131593c9 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableHead.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableHead.tsx @@ -1,11 +1,11 @@ -import type { Order, SortId, TableLabel } from '@main/components/PageDashboard/types' +import type { Order, SortId, TableLabel } from '@/dex/components/PageDashboard/types' import type { TheadSortButtonProps } from '@ui/Table/TheadSortButton' import React from 'react' import { t } from '@lingui/macro' -import { SORT_ID } from '@main/components/PageDashboard/utils' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' +import { SORT_ID } from '@/dex/components/PageDashboard/utils' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' import { Th, Thead, TheadSortButton } from '@ui/Table' import Box from '@ui/Box' diff --git a/apps/main/src/dex/components/PageDashboard/components/TableRow.tsx b/apps/main/src/dex/components/PageDashboard/components/TableRow.tsx index a125ac3bf..386eb7f3f 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableRow.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableRow.tsx @@ -1,18 +1,18 @@ -import type { DashboardTableRowProps } from '@main/components/PageDashboard/types' +import type { DashboardTableRowProps } from '@/dex/components/PageDashboard/types' import React, { useRef } from 'react' import styled from 'styled-components' -import { SORT_ID } from '@main/components/PageDashboard/utils' +import { SORT_ID } from '@/dex/components/PageDashboard/utils' import useIntersectionObserver from '@ui/hooks/useIntersectionObserver' import { Tr, Td } from '@ui/Table' -import PoolLabel from '@main/components/PoolLabel' -import TableCellBalances from '@main/components/PageDashboard/components/TableCellBalances' -import TableCellClaimables from '@main/components/PageDashboard/components/TableCellClaimables' -import TableCellProfit from '@main/components/PageDashboard/components/TableCellProfit' -import TableCellRewards from '@main/components/PageDashboard/components/TableCellRewards' -import TableCellRewardsOthers from '@main/components/PagePoolList/components/TableCellRewardsOthers' +import PoolLabel from '@/dex/components/PoolLabel' +import TableCellBalances from '@/dex/components/PageDashboard/components/TableCellBalances' +import TableCellClaimables from '@/dex/components/PageDashboard/components/TableCellClaimables' +import TableCellProfit from '@/dex/components/PageDashboard/components/TableCellProfit' +import TableCellRewards from '@/dex/components/PageDashboard/components/TableCellRewards' +import TableCellRewardsOthers from '@/dex/components/PagePoolList/components/TableCellRewardsOthers' const TableRow = ({ isLite, diff --git a/apps/main/src/dex/components/PageDashboard/components/TableRowMobile.tsx b/apps/main/src/dex/components/PageDashboard/components/TableRowMobile.tsx index a9100b30e..1fe5872ed 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableRowMobile.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableRowMobile.tsx @@ -1,21 +1,21 @@ -import type { DashboardTableRowProps } from '@main/components/PageDashboard/types' +import type { DashboardTableRowProps } from '@/dex/components/PageDashboard/types' import React, { useRef, useState } from 'react' import styled from 'styled-components' -import { SORT_ID } from '@main/components/PageDashboard/utils' +import { SORT_ID } from '@/dex/components/PageDashboard/utils' import useIntersectionObserver from 'ui/src/hooks/useIntersectionObserver' import { Td, Tr } from '@ui/Table' import Box from '@ui/Box' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' -import PoolLabel from '@main/components/PoolLabel' -import TableCellClaimables from '@main/components/PageDashboard/components/TableCellClaimables' -import TableCellProfit from '@main/components/PageDashboard/components/TableCellProfit' -import TableCellRewards from '@main/components/PageDashboard/components/TableCellRewards' -import TableCellBalances from '@main/components/PageDashboard/components/TableCellBalances' -import TableCellRewardsOthers from '@main/components/PagePoolList/components/TableCellRewardsOthers' +import PoolLabel from '@/dex/components/PoolLabel' +import TableCellClaimables from '@/dex/components/PageDashboard/components/TableCellClaimables' +import TableCellProfit from '@/dex/components/PageDashboard/components/TableCellProfit' +import TableCellRewards from '@/dex/components/PageDashboard/components/TableCellRewards' +import TableCellBalances from '@/dex/components/PageDashboard/components/TableCellBalances' +import TableCellRewardsOthers from '@/dex/components/PagePoolList/components/TableCellRewardsOthers' const TableRowMobile: React.FC = ({ isLite, diff --git a/apps/main/src/dex/components/PageDashboard/components/TableRowNoResult.tsx b/apps/main/src/dex/components/PageDashboard/components/TableRowNoResult.tsx index e8bc64893..297fa4deb 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableRowNoResult.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableRowNoResult.tsx @@ -3,7 +3,7 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { shortenAccount } from '@ui/utils' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' import { SpinnerWrapper } from '@ui/Spinner' diff --git a/apps/main/src/dex/components/PageDashboard/components/TableSortDialog.tsx b/apps/main/src/dex/components/PageDashboard/components/TableSortDialog.tsx index ae628e976..f6e0e01bd 100644 --- a/apps/main/src/dex/components/PageDashboard/components/TableSortDialog.tsx +++ b/apps/main/src/dex/components/PageDashboard/components/TableSortDialog.tsx @@ -1,10 +1,10 @@ -import type { Order, SortId, TableLabel } from '@main/components/PageDashboard/types' +import type { Order, SortId, TableLabel } from '@/dex/components/PageDashboard/types' import React from 'react' import styled from 'styled-components' import { useOverlayTriggerState } from '@react-stately/overlays' -import { useDashboardContext } from '@main/components/PageDashboard/dashboardContext' +import { useDashboardContext } from '@/dex/components/PageDashboard/dashboardContext' import { Chip } from '@ui/Typography' import { Radio, RadioGroup } from '@ui/Radio' diff --git a/apps/main/src/dex/components/PageDashboard/dashboardContext.ts b/apps/main/src/dex/components/PageDashboard/dashboardContext.ts index 7846b6716..2f2ead4e3 100644 --- a/apps/main/src/dex/components/PageDashboard/dashboardContext.ts +++ b/apps/main/src/dex/components/PageDashboard/dashboardContext.ts @@ -1,6 +1,6 @@ import { createContext, useContext } from 'react' -import { DashboardDataMapper, FormValues } from '@main/components/PageDashboard/types' -import { CurveApi, ChainId } from '@main/types/main.types' +import { DashboardDataMapper, FormValues } from '@/dex/components/PageDashboard/types' +import { CurveApi, ChainId } from '@/dex/types/main.types' type DashboardContextType = { activeKey: string diff --git a/apps/main/src/dex/components/PageDashboard/index.tsx b/apps/main/src/dex/components/PageDashboard/index.tsx index 00515a817..313b7efd5 100644 --- a/apps/main/src/dex/components/PageDashboard/index.tsx +++ b/apps/main/src/dex/components/PageDashboard/index.tsx @@ -1,4 +1,4 @@ -import type { DashboardTableRowProps, FormValues, TableLabel } from '@main/components/PageDashboard/types' +import type { DashboardTableRowProps, FormValues, TableLabel } from '@/dex/components/PageDashboard/types' import type { Params } from 'react-router' import type { Address } from 'viem' import { isAddress } from 'viem' @@ -6,24 +6,24 @@ import { t } from '@lingui/macro' import { useCallback, useEffect, useMemo, useRef } from 'react' import { useNavigate } from 'react-router-dom' import styled from 'styled-components' -import { ROUTE } from '@main/constants' -import { DashboardContextProvider } from '@main/components/PageDashboard/dashboardContext' +import { ROUTE } from '@/dex/constants' +import { DashboardContextProvider } from '@/dex/components/PageDashboard/dashboardContext' import { breakpoints } from '@ui/utils' -import { getPath } from '@main/utils/utilsRouter' -import curvejsApi from '@main/lib/curvejs' -import useStore from '@main/store/useStore' -import ClassicPoolsOnlyDescription from '@main/components/PageDashboard/components/ClassicPoolsOnlyDescription' +import { getPath } from '@/dex/utils/utilsRouter' +import curvejsApi from '@/dex/lib/curvejs' +import useStore from '@/dex/store/useStore' +import ClassicPoolsOnlyDescription from '@/dex/components/PageDashboard/components/ClassicPoolsOnlyDescription' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import Summary from '@main/components/PageDashboard/components/Summary' +import Summary from '@/dex/components/PageDashboard/components/Summary' import Table from '@ui/Table' -import TableHead from '@main/components/PageDashboard/components/TableHead' -import TableHeadMobile from '@main/components/PageDashboard/components/TableHeadMobile' -import TableRow from '@main/components/PageDashboard/components/TableRow' -import TableRowMobile from '@main/components/PageDashboard/components/TableRowMobile' -import TableRowNoResult from '@main/components/PageDashboard/components/TableRowNoResult' -import TableSortDialog from '@main/components/PageDashboard/components/TableSortDialog' -import { getDashboardDataActiveKey } from '@main/store/createDashboardSlice' -import { CurveApi, ChainId } from '@main/types/main.types' +import TableHead from '@/dex/components/PageDashboard/components/TableHead' +import TableHeadMobile from '@/dex/components/PageDashboard/components/TableHeadMobile' +import TableRow from '@/dex/components/PageDashboard/components/TableRow' +import TableRowMobile from '@/dex/components/PageDashboard/components/TableRowMobile' +import TableRowNoResult from '@/dex/components/PageDashboard/components/TableRowNoResult' +import TableSortDialog from '@/dex/components/PageDashboard/components/TableSortDialog' +import { getDashboardDataActiveKey } from '@/dex/store/createDashboardSlice' +import { CurveApi, ChainId } from '@/dex/types/main.types' const Dashboard = ({ curve, diff --git a/apps/main/src/dex/components/PageDashboard/types.ts b/apps/main/src/dex/components/PageDashboard/types.ts index 5429237d0..701de80fc 100644 --- a/apps/main/src/dex/components/PageDashboard/types.ts +++ b/apps/main/src/dex/components/PageDashboard/types.ts @@ -1,5 +1,5 @@ -import { SORT_ID } from '@main/components/PageDashboard/utils' -import { ChainId, RewardsApy, PoolData } from '@main/types/main.types' +import { SORT_ID } from '@/dex/components/PageDashboard/utils' +import { ChainId, RewardsApy, PoolData } from '@/dex/types/main.types' type UserBaseProfit = { day: string diff --git a/apps/main/src/dex/components/PageDashboard/utils.ts b/apps/main/src/dex/components/PageDashboard/utils.ts index bc042ad34..143b58585 100644 --- a/apps/main/src/dex/components/PageDashboard/utils.ts +++ b/apps/main/src/dex/components/PageDashboard/utils.ts @@ -1,6 +1,6 @@ -import type { FormStatus, FormValues } from '@main/components/PageDashboard/types' +import type { FormStatus, FormValues } from '@/dex/components/PageDashboard/types' -import { todayInMilliseconds } from '@main/utils/utilsDates' +import { todayInMilliseconds } from '@/dex/utils/utilsDates' export function getIsLockExpired(lockedAmount: string, unlockTime: number) { return unlockTime && unlockTime < todayInMilliseconds() && +lockedAmount > 0 diff --git a/apps/main/src/dex/components/PageDeployGauge/DeployMainnet.tsx b/apps/main/src/dex/components/PageDeployGauge/DeployMainnet.tsx index 58d3537b6..5d21cd32a 100644 --- a/apps/main/src/dex/components/PageDeployGauge/DeployMainnet.tsx +++ b/apps/main/src/dex/components/PageDeployGauge/DeployMainnet.tsx @@ -1,20 +1,20 @@ -import type { PoolType } from '@main/components/PageDeployGauge/types' +import type { PoolType } from '@/dex/components/PageDeployGauge/types' import { useMemo } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { TWOCOINCRYPTOSWAP, TWOCOINCRYPTOSWAPNG, THREECOINCRYPTOSWAP, STABLESWAP, STABLESWAPOLD, -} from '@main/components/PageDeployGauge/constants' +} from '@/dex/components/PageDeployGauge/constants' import Box from '@ui/Box/Box' -import TextInput from '@main/components/PageDeployGauge/components/TextInput' -import DialogSelect from '@main/components/PageDeployGauge/components/DialogSelect' -import { ChainId } from '@main/types/main.types' +import TextInput from '@/dex/components/PageDeployGauge/components/TextInput' +import DialogSelect from '@/dex/components/PageDeployGauge/components/DialogSelect' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageDeployGauge/DeploySidechain.tsx b/apps/main/src/dex/components/PageDeployGauge/DeploySidechain.tsx index 660956181..d2b6ebd87 100644 --- a/apps/main/src/dex/components/PageDeployGauge/DeploySidechain.tsx +++ b/apps/main/src/dex/components/PageDeployGauge/DeploySidechain.tsx @@ -1,22 +1,22 @@ -import type { PoolType } from '@main/components/PageDeployGauge/types' +import type { PoolType } from '@/dex/components/PageDeployGauge/types' import { useEffect, useMemo } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { TWOCOINCRYPTOSWAP, THREECOINCRYPTOSWAP, STABLESWAP, STABLESWAPOLD, TWOCOINCRYPTOSWAPNG, -} from '@main/components/PageDeployGauge/constants' +} from '@/dex/components/PageDeployGauge/constants' import Box from '@ui/Box' -import TextInput from '@main/components/PageDeployGauge/components/TextInput' -import DialogSelect from '@main/components/PageDeployGauge/components/DialogSelect' -import { ChainId } from '@main/types/main.types' +import TextInput from '@/dex/components/PageDeployGauge/components/TextInput' +import DialogSelect from '@/dex/components/PageDeployGauge/components/DialogSelect' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageDeployGauge/Page.tsx b/apps/main/src/dex/components/PageDeployGauge/Page.tsx index 26ca20d78..2f4fbe738 100644 --- a/apps/main/src/dex/components/PageDeployGauge/Page.tsx +++ b/apps/main/src/dex/components/PageDeployGauge/Page.tsx @@ -7,12 +7,12 @@ import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import DocumentHead from '@main/layout/default/DocumentHead' -import DeployGauge from '@main/components/PageDeployGauge/index' +import DocumentHead from '@/dex/layout/default/DocumentHead' +import DeployGauge from '@/dex/components/PageDeployGauge/index' -import { scrollToTop } from '@main/utils' -import usePageOnMount from '@main/hooks/usePageOnMount' -import { CurveApi } from '@main/types/main.types' +import { scrollToTop } from '@/dex/utils' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import { CurveApi } from '@/dex/types/main.types' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/dex/components/PageDeployGauge/ProcessSummary.tsx b/apps/main/src/dex/components/PageDeployGauge/ProcessSummary.tsx index c40e5bd58..684b9d4ed 100644 --- a/apps/main/src/dex/components/PageDeployGauge/ProcessSummary.tsx +++ b/apps/main/src/dex/components/PageDeployGauge/ProcessSummary.tsx @@ -1,15 +1,15 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' -import { shortenTokenAddress } from '@main/utils' +import useStore from '@/dex/store/useStore' +import { shortenTokenAddress } from '@/dex/utils' import { useNavigate } from 'react-router-dom' import ExternalLink from '@ui/Link/ExternalLink' import Icon from '@ui/Icon' import Box from '@ui/Box' import InternalLinkButton from '@ui/InternalLinkButton' -import InfoBox from '@main/components/PageDeployGauge/InfoBox' +import InfoBox from '@/dex/components/PageDeployGauge/InfoBox' import Spinner from '@ui/Spinner' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' type Props = { chainId: ChainId diff --git a/apps/main/src/dex/components/PageDeployGauge/components/DeployGaugeButton.tsx b/apps/main/src/dex/components/PageDeployGauge/components/DeployGaugeButton.tsx index 68650b3e0..03a169901 100644 --- a/apps/main/src/dex/components/PageDeployGauge/components/DeployGaugeButton.tsx +++ b/apps/main/src/dex/components/PageDeployGauge/components/DeployGaugeButton.tsx @@ -1,23 +1,23 @@ import styled from 'styled-components' import { t } from '@lingui/macro' import { useNavigate } from 'react-router-dom' -import { CONNECT_STAGE } from '@main/constants' -import useStore from '@main/store/useStore' -import { curveProps } from '@main/lib/utils' -import { useNetworkFromUrl } from '@main/utils/utilsRouter' -import { shortenTokenAddress } from '@main/utils' +import { CONNECT_STAGE } from '@/dex/constants' +import useStore from '@/dex/store/useStore' +import { curveProps } from '@/dex/lib/utils' +import { useNetworkFromUrl } from '@/dex/utils/utilsRouter' +import { shortenTokenAddress } from '@/dex/utils' import { TWOCOINCRYPTOSWAP, TWOCOINCRYPTOSWAPNG, THREECOINCRYPTOSWAP, STABLESWAP, STABLESWAPOLD, -} from '@main/components/PageDeployGauge/constants' +} from '@/dex/components/PageDeployGauge/constants' import Button from '@ui/Button' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import AlertBox from '@ui/AlertBox' -import InfoLinkBar from '@main/components/PageCreatePool/ConfirmModal/CreateInfoLinkBar' -import { CurveApi, ChainId } from '@main/types/main.types' +import InfoLinkBar from '@/dex/components/PageCreatePool/ConfirmModal/CreateInfoLinkBar' +import { CurveApi, ChainId } from '@/dex/types/main.types' interface Props { disabled: boolean diff --git a/apps/main/src/dex/components/PageDeployGauge/components/DialogSelect.tsx b/apps/main/src/dex/components/PageDeployGauge/components/DialogSelect.tsx index 19c29b90c..fccf14042 100644 --- a/apps/main/src/dex/components/PageDeployGauge/components/DialogSelect.tsx +++ b/apps/main/src/dex/components/PageDeployGauge/components/DialogSelect.tsx @@ -1,7 +1,7 @@ import React from 'react' import styled from 'styled-components' -import DialogSelectContent from '@main/components/PageDeployGauge/components/DialogSelectContent' +import DialogSelectContent from '@/dex/components/PageDeployGauge/components/DialogSelectContent' import Popover, { Popover2Dialog } from '@ui/Popover2' type Props = { diff --git a/apps/main/src/dex/components/PageDeployGauge/index.tsx b/apps/main/src/dex/components/PageDeployGauge/index.tsx index 59125c3dd..7b9ca2465 100644 --- a/apps/main/src/dex/components/PageDeployGauge/index.tsx +++ b/apps/main/src/dex/components/PageDeployGauge/index.tsx @@ -4,13 +4,13 @@ import { useEffect, useMemo, useRef } from 'react' import { useOverlayTriggerState } from '@react-stately/overlays' import { useButton } from '@react-aria/button' -import { curveProps } from '@main/lib/utils' -import useStore from '@main/store/useStore' +import { curveProps } from '@/dex/lib/utils' +import useStore from '@/dex/store/useStore' -import DeploySidechain from '@main/components/PageDeployGauge/DeploySidechain' -import DeployMainnet from '@main/components/PageDeployGauge/DeployMainnet' -import ProcessSummary from '@main/components/PageDeployGauge/ProcessSummary' -import DeployGaugeButton from '@main/components/PageDeployGauge/components/DeployGaugeButton' +import DeploySidechain from '@/dex/components/PageDeployGauge/DeploySidechain' +import DeployMainnet from '@/dex/components/PageDeployGauge/DeployMainnet' +import ProcessSummary from '@/dex/components/PageDeployGauge/ProcessSummary' +import DeployGaugeButton from '@/dex/components/PageDeployGauge/components/DeployGaugeButton' import Box, { BoxHeader } from '@ui/Box' import Spinner, { SpinnerWrapper } from '@ui/Spinner' @@ -18,7 +18,7 @@ import Switch from '@ui/Switch/Switch' import IconButton from '@ui/IconButton' import Icon from '@ui/Icon/Icon' import ModalDialog from '@ui/Dialog/ModalDialog' -import { CurveApi, ChainId } from '@main/types/main.types' +import { CurveApi, ChainId } from '@/dex/types/main.types' type Props = { curve: CurveApi diff --git a/apps/main/src/dex/components/PageDeployGauge/types.ts b/apps/main/src/dex/components/PageDeployGauge/types.ts index 4370087a2..cedc6e872 100644 --- a/apps/main/src/dex/components/PageDeployGauge/types.ts +++ b/apps/main/src/dex/components/PageDeployGauge/types.ts @@ -4,7 +4,7 @@ import { TWOCOINCRYPTOSWAPNG, THREECOINCRYPTOSWAP, STABLESWAPOLD, -} from '@main/components/PageDeployGauge/constants' +} from '@/dex/components/PageDeployGauge/constants' export type PoolType = | typeof TWOCOINCRYPTOSWAP diff --git a/apps/main/src/dex/components/PageDisclaimer/Page.tsx b/apps/main/src/dex/components/PageDisclaimer/Page.tsx index 308c6cec9..78984181e 100644 --- a/apps/main/src/dex/components/PageDisclaimer/Page.tsx +++ b/apps/main/src/dex/components/PageDisclaimer/Page.tsx @@ -4,8 +4,8 @@ import { t } from '@lingui/macro' import Stack from '@mui/material/Stack' -import DocumentHead from '@main/layout/default/DocumentHead' -import { scrollToTop } from '@main/utils' +import DocumentHead from '@/dex/layout/default/DocumentHead' +import { scrollToTop } from '@/dex/utils' import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' import { Disclaimer } from '@ui-kit/widgets/Disclaimer' diff --git a/apps/main/src/dex/components/PageIntegrations/Page.tsx b/apps/main/src/dex/components/PageIntegrations/Page.tsx index 1006b7f5e..47cda2038 100644 --- a/apps/main/src/dex/components/PageIntegrations/Page.tsx +++ b/apps/main/src/dex/components/PageIntegrations/Page.tsx @@ -6,13 +6,13 @@ import { useLocation, useNavigate, useParams, useSearchParams } from 'react-rout import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { scrollToTop } from '@main/utils' -import usePageOnMount from '@main/hooks/usePageOnMount' -import useStore from '@main/store/useStore' +import { scrollToTop } from '@/dex/utils' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import useStore from '@/dex/store/useStore' import { ExternalLink } from '@ui/Link' -import DocumentHead from '@main/layout/default/DocumentHead' -import IntegrationsComp from '@main/components/PageIntegrations/index' +import DocumentHead from '@/dex/layout/default/DocumentHead' +import IntegrationsComp from '@/dex/components/PageIntegrations/index' import Spinner, { SpinnerWrapper } from '@ui/Spinner' const Page: NextPage = () => { diff --git a/apps/main/src/dex/components/PageIntegrations/components/SelectIntegrationTags.tsx b/apps/main/src/dex/components/PageIntegrations/components/SelectIntegrationTags.tsx index 6b8be75db..034e1e961 100644 --- a/apps/main/src/dex/components/PageIntegrations/components/SelectIntegrationTags.tsx +++ b/apps/main/src/dex/components/PageIntegrations/components/SelectIntegrationTags.tsx @@ -1,4 +1,4 @@ -import type { FormStatus } from '@main/components/PageIntegrations/types' +import type { FormStatus } from '@/dex/components/PageIntegrations/types' import type { IntegrationTag } from '@ui/Integration/types' import React from 'react' diff --git a/apps/main/src/dex/components/PageIntegrations/index.tsx b/apps/main/src/dex/components/PageIntegrations/index.tsx index 6dc0a182d..3547f1400 100644 --- a/apps/main/src/dex/components/PageIntegrations/index.tsx +++ b/apps/main/src/dex/components/PageIntegrations/index.tsx @@ -1,4 +1,4 @@ -import type { FormValues } from '@main/components/PageIntegrations/types' +import type { FormValues } from '@/dex/components/PageIntegrations/types' import type { IntegrationsTags } from '@ui/Integration/types' import type { NavigateFunction, Params } from 'react-router' @@ -8,18 +8,18 @@ import Image from 'next/image' import styled from 'styled-components' import React, { useCallback, useEffect, useMemo } from 'react' -import { ROUTE } from '@main/constants' +import { ROUTE } from '@/dex/constants' import { breakpoints } from '@ui/utils' -import { getPath } from '@main/utils/utilsRouter' -import { parseSearchParams } from '@main/components/PageIntegrations/utils' -import useStore from '@main/store/useStore' +import { getPath } from '@/dex/utils/utilsRouter' +import { parseSearchParams } from '@/dex/components/PageIntegrations/utils' +import useStore from '@/dex/store/useStore' import Box from '@ui/Box' import IntegrationAppComp from '@ui/Integration/IntegrationApp' import SearchInput from '@ui/SearchInput' import SelectNetwork from '@ui/SelectNetwork/SelectNetwork' -import SelectIntegrationTags from '@main/components/PageIntegrations/components/SelectIntegrationTags' -import { ChainId, NetworkEnum } from '@main/types/main.types' +import SelectIntegrationTags from '@/dex/components/PageIntegrations/components/SelectIntegrationTags' +import { ChainId, NetworkEnum } from '@/dex/types/main.types' // Update integrations list repo: https://github.com/curvefi/curve-external-integrations const IntegrationsComp = ({ diff --git a/apps/main/src/dex/components/PageIntegrations/utils.ts b/apps/main/src/dex/components/PageIntegrations/utils.ts index b2b86b039..20099f6a8 100644 --- a/apps/main/src/dex/components/PageIntegrations/utils.ts +++ b/apps/main/src/dex/components/PageIntegrations/utils.ts @@ -1,7 +1,7 @@ -import type { FilterKey } from '@main/components/PageIntegrations/types' +import type { FilterKey } from '@/dex/components/PageIntegrations/types' import type { IntegrationsTags } from '@ui/Integration/types' import type { ChainOption } from '@ui-kit/features/switch-chain' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' export function parseSearchParams( searchParams: URLSearchParams | undefined, diff --git a/apps/main/src/dex/components/PagePool/Deposit/components/FieldsDeposit.tsx b/apps/main/src/dex/components/PagePool/Deposit/components/FieldsDeposit.tsx index e2f0ba144..8fa10b9c4 100644 --- a/apps/main/src/dex/components/PagePool/Deposit/components/FieldsDeposit.tsx +++ b/apps/main/src/dex/components/PagePool/Deposit/components/FieldsDeposit.tsx @@ -1,13 +1,13 @@ -import type { TransferProps } from '@main/components/PagePool/types' -import type { FormValues, LoadMaxAmount } from '@main/components/PagePool/Deposit/types' +import type { TransferProps } from '@/dex/components/PagePool/types' +import type { FormValues, LoadMaxAmount } from '@/dex/components/PagePool/Deposit/types' import { t } from '@lingui/macro' import { useMemo } from 'react' import cloneDeep from 'lodash/cloneDeep' import { formatNumber } from '@ui/utils' -import useStore from '@main/store/useStore' -import { FieldsWrapper } from '@main/components/PagePool/styles' +import useStore from '@/dex/store/useStore' +import { FieldsWrapper } from '@/dex/components/PagePool/styles' import Checkbox from '@ui/Checkbox' -import FieldToken from '@main/components/PagePool/components/FieldToken' +import FieldToken from '@/dex/components/PagePool/components/FieldToken' const FieldsDeposit = ({ formProcessing, diff --git a/apps/main/src/dex/components/PagePool/Deposit/components/FormDeposit.tsx b/apps/main/src/dex/components/PagePool/Deposit/components/FormDeposit.tsx index a477e3194..4039d942d 100644 --- a/apps/main/src/dex/components/PagePool/Deposit/components/FormDeposit.tsx +++ b/apps/main/src/dex/components/PagePool/Deposit/components/FormDeposit.tsx @@ -1,26 +1,26 @@ -import type { FormValues, FormStatus, StepKey, LoadMaxAmount } from '@main/components/PagePool/Deposit/types' -import type { Slippage, TransferProps } from '@main/components/PagePool/types' +import type { FormValues, FormStatus, StepKey, LoadMaxAmount } from '@/dex/components/PagePool/Deposit/types' +import type { Slippage, TransferProps } from '@/dex/components/PagePool/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { DEFAULT_ESTIMATED_GAS, DEFAULT_SLIPPAGE } from '@main/components/PagePool' -import { DEFAULT_FORM_LP_TOKEN_EXPECTED } from '@main/components/PagePool/Deposit/utils' -import { amountsDescription, tokensDescription } from '@main/components/PagePool/utils' +import { DEFAULT_ESTIMATED_GAS, DEFAULT_SLIPPAGE } from '@/dex/components/PagePool' +import { DEFAULT_FORM_LP_TOKEN_EXPECTED } from '@/dex/components/PagePool/Deposit/utils' +import { amountsDescription, tokensDescription } from '@/dex/components/PagePool/utils' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@main/components/AlertFormError' -import AlertSlippage from '@main/components/AlertSlippage' -import FieldsDeposit from '@main/components/PagePool/Deposit/components/FieldsDeposit' -import DetailInfoSlippage from '@main/components/PagePool/components/DetailInfoSlippage' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import DetailInfoEstLpTokens from '@main/components/PagePool/components/DetailInfoEstLpTokens' -import DetailInfoSlippageTolerance from '@main/components/PagePool/components/DetailInfoSlippageTolerance' -import HighSlippagePriceImpactModal from '@main/components/PagePool/components/WarningModal' +import AlertFormError from '@/dex/components/AlertFormError' +import AlertSlippage from '@/dex/components/AlertSlippage' +import FieldsDeposit from '@/dex/components/PagePool/Deposit/components/FieldsDeposit' +import DetailInfoSlippage from '@/dex/components/PagePool/components/DetailInfoSlippage' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import DetailInfoEstLpTokens from '@/dex/components/PagePool/components/DetailInfoEstLpTokens' +import DetailInfoSlippageTolerance from '@/dex/components/PagePool/components/DetailInfoSlippageTolerance' +import HighSlippagePriceImpactModal from '@/dex/components/PagePool/components/WarningModal' import Stepper from '@ui/Stepper' -import TransferActions from '@main/components/PagePool/components/TransferActions' +import TransferActions from '@/dex/components/PagePool/components/TransferActions' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi, PoolData } from '@main/types/main.types' +import { CurveApi, PoolData } from '@/dex/types/main.types' const FormDeposit = ({ chainIdPoolId, diff --git a/apps/main/src/dex/components/PagePool/Deposit/components/FormDepositStake.tsx b/apps/main/src/dex/components/PagePool/Deposit/components/FormDepositStake.tsx index c3254cd1b..73c0ba88b 100644 --- a/apps/main/src/dex/components/PagePool/Deposit/components/FormDepositStake.tsx +++ b/apps/main/src/dex/components/PagePool/Deposit/components/FormDepositStake.tsx @@ -1,28 +1,28 @@ import type { ReactNode } from 'react' -import type { FormValues, FormStatus, StepKey, LoadMaxAmount } from '@main/components/PagePool/Deposit/types' -import type { Slippage, TransferProps } from '@main/components/PagePool/types' +import type { FormValues, FormStatus, StepKey, LoadMaxAmount } from '@/dex/components/PagePool/Deposit/types' +import type { Slippage, TransferProps } from '@/dex/components/PagePool/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { DEFAULT_ESTIMATED_GAS, DEFAULT_SLIPPAGE } from '@main/components/PagePool' -import { DEFAULT_FORM_LP_TOKEN_EXPECTED } from '@main/components/PagePool/Deposit/utils' -import { amountsDescription, tokensDescription } from '@main/components/PagePool/utils' +import { DEFAULT_ESTIMATED_GAS, DEFAULT_SLIPPAGE } from '@/dex/components/PagePool' +import { DEFAULT_FORM_LP_TOKEN_EXPECTED } from '@/dex/components/PagePool/Deposit/utils' +import { amountsDescription, tokensDescription } from '@/dex/components/PagePool/utils' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@main/components/AlertFormError' -import AlertSlippage from '@main/components/AlertSlippage' -import FieldsDeposit from '@main/components/PagePool/Deposit/components/FieldsDeposit' -import DetailInfoSlippage from '@main/components/PagePool/components/DetailInfoSlippage' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import DetailInfoEstLpTokens from '@main/components/PagePool/components/DetailInfoEstLpTokens' -import DetailInfoExpectedApy from '@main/components/PagePool/components/DetailInfoExpectedApy' -import DetailInfoSlippageTolerance from '@main/components/PagePool/components/DetailInfoSlippageTolerance' -import HighSlippagePriceImpactModal from '@main/components/PagePool/components/WarningModal' +import AlertFormError from '@/dex/components/AlertFormError' +import AlertSlippage from '@/dex/components/AlertSlippage' +import FieldsDeposit from '@/dex/components/PagePool/Deposit/components/FieldsDeposit' +import DetailInfoSlippage from '@/dex/components/PagePool/components/DetailInfoSlippage' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import DetailInfoEstLpTokens from '@/dex/components/PagePool/components/DetailInfoEstLpTokens' +import DetailInfoExpectedApy from '@/dex/components/PagePool/components/DetailInfoExpectedApy' +import DetailInfoSlippageTolerance from '@/dex/components/PagePool/components/DetailInfoSlippageTolerance' +import HighSlippagePriceImpactModal from '@/dex/components/PagePool/components/WarningModal' import Stepper from '@ui/Stepper' -import TransferActions from '@main/components/PagePool/components/TransferActions' +import TransferActions from '@/dex/components/PagePool/components/TransferActions' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi, Pool, PoolData } from '@main/types/main.types' +import { CurveApi, Pool, PoolData } from '@/dex/types/main.types' const FormDepositStake = ({ chainIdPoolId, diff --git a/apps/main/src/dex/components/PagePool/Deposit/components/FormStake.tsx b/apps/main/src/dex/components/PagePool/Deposit/components/FormStake.tsx index 4bb24c0ed..a07da8fdf 100644 --- a/apps/main/src/dex/components/PagePool/Deposit/components/FormStake.tsx +++ b/apps/main/src/dex/components/PagePool/Deposit/components/FormStake.tsx @@ -1,24 +1,24 @@ import type { ReactNode } from 'react' -import type { FormValues, FormStatus, StepKey } from '@main/components/PagePool/Deposit/types' -import type { TransferProps } from '@main/components/PagePool/types' +import type { FormValues, FormStatus, StepKey } from '@/dex/components/PagePool/Deposit/types' +import type { TransferProps } from '@/dex/components/PagePool/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' import BigNumber from 'bignumber.js' -import { DEFAULT_ESTIMATED_GAS } from '@main/components/PagePool' +import { DEFAULT_ESTIMATED_GAS } from '@/dex/components/PagePool' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' import { formatNumber } from '@ui/utils' -import useStore from '@main/store/useStore' -import { FieldsWrapper } from '@main/components/PagePool/styles' -import AlertFormError from '@main/components/AlertFormError' +import useStore from '@/dex/store/useStore' +import { FieldsWrapper } from '@/dex/components/PagePool/styles' +import AlertFormError from '@/dex/components/AlertFormError' import AlertBox from '@ui/AlertBox' -import DetailInfoExpectedApy from '@main/components/PagePool/components/DetailInfoExpectedApy' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import FieldLpToken from '@main/components/PagePool/components/FieldLpToken' +import DetailInfoExpectedApy from '@/dex/components/PagePool/components/DetailInfoExpectedApy' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import FieldLpToken from '@/dex/components/PagePool/components/FieldLpToken' import Stepper from '@ui/Stepper' -import TransferActions from '@main/components/PagePool/components/TransferActions' +import TransferActions from '@/dex/components/PagePool/components/TransferActions' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi, Pool, PoolData } from '@main/types/main.types' +import { CurveApi, Pool, PoolData } from '@/dex/types/main.types' const FormStake = ({ curve, poolData, poolDataCacheOrApi, routerParams, seed, userPoolBalances }: TransferProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dex/components/PagePool/Deposit/index.tsx b/apps/main/src/dex/components/PagePool/Deposit/index.tsx index 072481e2b..fb182a62e 100644 --- a/apps/main/src/dex/components/PagePool/Deposit/index.tsx +++ b/apps/main/src/dex/components/PagePool/Deposit/index.tsx @@ -1,16 +1,16 @@ -import type { FormType } from '@main/components/PagePool/Deposit/types' -import type { TransferProps } from '@main/components/PagePool/types' +import type { FormType } from '@/dex/components/PagePool/Deposit/types' +import type { TransferProps } from '@/dex/components/PagePool/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { isValidAddress } from '@main/utils' -import useStore from '@main/store/useStore' -import { DEFAULT_FORM_STATUS } from '@main/components/PagePool/Deposit/utils' -import { StyledTabSlide } from '@main/components/PagePool/styles' +import { isValidAddress } from '@/dex/utils' +import useStore from '@/dex/store/useStore' +import { DEFAULT_FORM_STATUS } from '@/dex/components/PagePool/Deposit/utils' +import { StyledTabSlide } from '@/dex/components/PagePool/styles' import { SlideTab, SlideTabs } from '@ui/TabSlide' import AlertBox from '@ui/AlertBox' -import FormDeposit from '@main/components/PagePool/Deposit/components/FormDeposit' -import FormDepositStake from '@main/components/PagePool/Deposit/components/FormDepositStake' -import FormStake from '@main/components/PagePool/Deposit/components/FormStake' +import FormDeposit from '@/dex/components/PagePool/Deposit/components/FormDeposit' +import FormDepositStake from '@/dex/components/PagePool/Deposit/components/FormDepositStake' +import FormStake from '@/dex/components/PagePool/Deposit/components/FormStake' const Deposit = ({ hasDepositAndStake, ...transferProps }: TransferProps & { hasDepositAndStake: boolean }) => { const tabsRef = useRef(null) diff --git a/apps/main/src/dex/components/PagePool/Deposit/types.ts b/apps/main/src/dex/components/PagePool/Deposit/types.ts index 392b3f8d9..93ca18ced 100644 --- a/apps/main/src/dex/components/PagePool/Deposit/types.ts +++ b/apps/main/src/dex/components/PagePool/Deposit/types.ts @@ -1,4 +1,4 @@ -import type { Amount } from '@main/components/PagePool/utils' +import type { Amount } from '@/dex/components/PagePool/utils' export type StepKey = 'APPROVAL' | 'DEPOSIT' | 'DEPOSIT_STAKE' | 'STAKE' | '' export type FormType = 'DEPOSIT' | 'DEPOSIT_STAKE' | 'STAKE' diff --git a/apps/main/src/dex/components/PagePool/Deposit/utils.ts b/apps/main/src/dex/components/PagePool/Deposit/utils.ts index 8befeb56a..e4111d45d 100644 --- a/apps/main/src/dex/components/PagePool/Deposit/utils.ts +++ b/apps/main/src/dex/components/PagePool/Deposit/utils.ts @@ -1,4 +1,4 @@ -import { FormLpTokenExpected, FormStatus, FormValues } from '@main/components/PagePool/Deposit/types' +import { FormLpTokenExpected, FormStatus, FormValues } from '@/dex/components/PagePool/Deposit/types' export const DEFAULT_FORM_VALUES: FormValues = { amounts: [], diff --git a/apps/main/src/dex/components/PagePool/Page.tsx b/apps/main/src/dex/components/PagePool/Page.tsx index 5692d0aee..4dc8d4628 100644 --- a/apps/main/src/dex/components/PagePool/Page.tsx +++ b/apps/main/src/dex/components/PagePool/Page.tsx @@ -3,14 +3,14 @@ import { useEffect, useMemo } from 'react' import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { t } from '@lingui/macro' -import { ROUTE } from '@main/constants' -import { getPath } from '@main/utils/utilsRouter' -import usePageOnMount from '@main/hooks/usePageOnMount' -import useStore from '@main/store/useStore' -import { scrollToTop } from '@main/utils' -import DocumentHead from '@main/layout/default/DocumentHead' -import Transfer from '@main/components/PagePool/index' -import ConnectWallet from '@main/components/ConnectWallet' +import { ROUTE } from '@/dex/constants' +import { getPath } from '@/dex/utils/utilsRouter' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import useStore from '@/dex/store/useStore' +import { scrollToTop } from '@/dex/utils' +import DocumentHead from '@/dex/layout/default/DocumentHead' +import Transfer from '@/dex/components/PagePool/index' +import ConnectWallet from '@/dex/components/ConnectWallet' import Box from '@ui/Box' const Page: NextPage = () => { diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/LiquidityData.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/LiquidityData.tsx index 6219d10d4..a993e93c4 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/LiquidityData.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/LiquidityData.tsx @@ -1,19 +1,19 @@ import type { LpLiquidityEventsData, PricesApiCoin } from '@ui/Chart/types' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { formatNumber, getFractionDigitsOptions } from '@ui/utils' import { convertFullTime, convertTime, convertTimeAgo, -} from '@main/components/PagePool/PoolDetails/ChartOhlcWrapper/utils' +} from '@/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/utils' import Box from '@ui/Box' -import TokenIcon from '@main/components/TokenIcon' +import TokenIcon from '@/dex/components/TokenIcon' import { Chip } from '@ui/Typography' import Tooltip from '@ui/Tooltip' import type React from 'react' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' const LiquidityData: React.FC<{ lpEventsData: LpLiquidityEventsData[]; chainId: ChainId; coins: PricesApiCoin[] }> = ({ lpEventsData, diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/PoolActivity.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/PoolActivity.tsx index 52d1a83f7..48321ebde 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/PoolActivity.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/PoolActivity.tsx @@ -4,14 +4,14 @@ import { useEffect, useState } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import Button from '@ui/Button/Button' import Icon from '@ui/Icon' -import TradesData from '@main/components/PagePool/PoolDetails/ChartOhlcWrapper/TradesData' -import LiquidityData from '@main/components/PagePool/PoolDetails/ChartOhlcWrapper/LiquidityData' -import { ChainId } from '@main/types/main.types' +import TradesData from '@/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/TradesData' +import LiquidityData from '@/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/LiquidityData' +import { ChainId } from '@/dex/types/main.types' const PoolActivity: React.FC<{ poolAddress: string diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/TradesData.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/TradesData.tsx index c7c80a69d..e08cabe0e 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/TradesData.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/TradesData.tsx @@ -5,13 +5,13 @@ import { convertFullTime, convertTime, convertTimeAgo, -} from '@main/components/PagePool/PoolDetails/ChartOhlcWrapper/utils' +} from '@/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/utils' import Box from '@ui/Box' -import TokenIcon from '@main/components/TokenIcon' +import TokenIcon from '@/dex/components/TokenIcon' import { Chip } from '@ui/Typography' import Tooltip from '@ui/Tooltip' -import useStore from '@main/store/useStore' -import { ChainId } from '@main/types/main.types' +import useStore from '@/dex/store/useStore' +import { ChainId } from '@/dex/types/main.types' const TradesData: React.FC<{ lpTradesData: LpTradesData[]; chainId: ChainId; tradesTokens: LpTradeToken[] }> = ({ lpTradesData, diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/index.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/index.tsx index 8e33cbf93..6d57bc6bd 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/index.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/index.tsx @@ -4,17 +4,17 @@ import { useEffect, useState, useMemo, useCallback } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import { combinations } from '@main/components/PagePool/PoolDetails/ChartOhlcWrapper/utils' +import { combinations } from '@/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/utils' import Button from '@ui/Button' import ChartWrapper from '@ui/Chart' import Icon from '@ui/Icon' -import PoolActivity from '@main/components/PagePool/PoolDetails/ChartOhlcWrapper/PoolActivity' +import PoolActivity from '@/dex/components/PagePool/PoolDetails/ChartOhlcWrapper/PoolActivity' import { getThreeHundredResultsAgo, subtractTimeUnit } from '@ui/Chart/utils' import Box from '@ui/Box' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' const PoolInfoData: React.FC<{ rChainId: ChainId; pricesApiPoolData: PricesApiPool }> = ({ rChainId, diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/CurrencyReservesContent.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/CurrencyReservesContent.tsx index c29334fbc..60ac1d3e1 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/CurrencyReservesContent.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/CurrencyReservesContent.tsx @@ -1,9 +1,9 @@ -import type { CurrencyReservesProps } from '@main/components/PagePool/PoolDetails/CurrencyReserves/types' +import type { CurrencyReservesProps } from '@/dex/components/PagePool/PoolDetails/CurrencyReserves/types' import { t } from '@lingui/macro' import styled from 'styled-components' import { breakpoints, formatNumber, formatNumberUsdRate } from '@ui/utils' -import { shortenTokenAddress } from '@main/utils' -import { StyledStats } from '@main/components/PagePool/PoolDetails/PoolStats/styles' +import { shortenTokenAddress } from '@/dex/utils' +import { StyledStats } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' import Chip from '@ui/Typography/Chip' import Box from '@ui/Box' import ExternalLink from '@ui/Link/ExternalLink' @@ -11,7 +11,7 @@ import Icon from '@ui/Icon' import IconTooltip from '@ui/Tooltip/TooltipIcon' import TextEllipsis from '@ui/TextEllipsis' import TooltipButton from '@ui/Tooltip' -import TokenIcon from '@main/components/TokenIcon' +import TokenIcon from '@/dex/components/TokenIcon' const CurrencyReservesContent = ({ cr, diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/index.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/index.tsx index 6b369ca66..44372a84e 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/index.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/index.tsx @@ -1,16 +1,16 @@ import { t } from '@lingui/macro' import styled from 'styled-components' -import { copyToClipboard } from '@main/lib/utils' -import { getChainPoolIdActiveKey } from '@main/utils' +import { copyToClipboard } from '@/dex/lib/utils' +import { getChainPoolIdActiveKey } from '@/dex/utils' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import usePoolTokensLinksMapper from '@main/hooks/usePoolTokensLinksMapper' -import useStore from '@main/store/useStore' +import usePoolTokensLinksMapper from '@/dex/hooks/usePoolTokensLinksMapper' +import useStore from '@/dex/store/useStore' import { Chip } from '@ui/Typography' -import { StyledStats } from '@main/components/PagePool/PoolDetails/PoolStats/styles' -import CurrencyReservesContent from '@main/components/PagePool/PoolDetails/CurrencyReserves/CurrencyReservesContent' +import { StyledStats } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' +import CurrencyReservesContent from '@/dex/components/PagePool/PoolDetails/CurrencyReserves/CurrencyReservesContent' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import { ChainId, TokensMapper, Tvl } from '@main/types/main.types' +import { ChainId, TokensMapper, Tvl } from '@/dex/types/main.types' interface Props { rChainId: ChainId diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/types.ts b/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/types.ts index 8bd8c1e89..c39e10273 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/types.ts +++ b/apps/main/src/dex/components/PagePool/PoolDetails/CurrencyReserves/types.ts @@ -1,4 +1,4 @@ -import { ChainId, NetworkConfig, CurrencyReservesToken, TokensMapper } from '@main/types/main.types' +import { ChainId, NetworkConfig, CurrencyReservesToken, TokensMapper } from '@/dex/types/main.types' export interface CurrencyReservesProps { cr: CurrencyReservesToken | undefined diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/PoolParameters/index.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/PoolParameters/index.tsx index 6e6adf939..65dd6488d 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/PoolParameters/index.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/PoolParameters/index.tsx @@ -1,20 +1,20 @@ import { useMemo } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { breakpoints } from '@ui/utils/responsive' import { formatNumber, getFractionDigitsOptions } from '@ui/utils' -import { shortenTokenAddress } from '@main/utils' -import { copyToClipboard } from '@main/lib/utils' +import { shortenTokenAddress } from '@/dex/utils' +import { copyToClipboard } from '@/dex/lib/utils' import dayjs from '@ui-kit/lib/dayjs' import Box from '@ui/Box' -import { StyledIconButton, StyledInformationSquare16 } from '@main/components/PagePool/PoolDetails/PoolStats/styles' +import { StyledIconButton, StyledInformationSquare16 } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' import { Chip } from '@ui/Typography' import { ExternalLink } from '@ui/Link' -import TokenIcon from '@main/components/TokenIcon' +import TokenIcon from '@/dex/components/TokenIcon' import Icon from '@ui/Icon' import TextEllipsis from '@ui/TextEllipsis' -import { ChainId, PoolData } from '@main/types/main.types' +import { ChainId, PoolData } from '@/dex/types/main.types' type PoolParametersProps = { pricesApi: boolean diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/Contracts.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/Contracts.tsx index b6e48bc50..c8a989d54 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/Contracts.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/Contracts.tsx @@ -1,15 +1,15 @@ -import type { PageTransferProps } from '@main/components/PagePool/types' +import type { PageTransferProps } from '@/dex/components/PagePool/types' import { t } from '@lingui/macro' import styled from 'styled-components' import React from 'react' -import { isValidAddress } from '@main/utils' +import { isValidAddress } from '@/dex/utils' -import ChipInactive from '@main/components/ChipInactive' -import AddGaugeLink from '@main/components/PagePool/components/AddGaugeLink' -import ContractComp from '@main/components/PagePool/components/ContractComp' -import { ChainId, PoolDataCacheOrApi } from '@main/types/main.types' +import ChipInactive from '@/dex/components/ChipInactive' +import AddGaugeLink from '@/dex/components/PagePool/components/AddGaugeLink' +import ContractComp from '@/dex/components/PagePool/components/ContractComp' +import { ChainId, PoolDataCacheOrApi } from '@/dex/types/main.types' type ContractsProps = { rChainId: ChainId diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParameters.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParameters.tsx index 37658876b..20e814b91 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParameters.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParameters.tsx @@ -1,19 +1,19 @@ -import type { TransferProps } from '@main/components/PagePool/types' +import type { TransferProps } from '@/dex/components/PagePool/types' import { t } from '@lingui/macro' import React, { useMemo } from 'react' import styled from 'styled-components' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { Chip } from '@ui/Typography' import { Item, Items } from '@ui/Items' -import { StyledInformationSquare16 } from '@main/components/PagePool/PoolDetails/PoolStats/styles' +import { StyledInformationSquare16 } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' import Box from '@ui/Box' -import PoolParametersDaoFees from '@main/components/PagePool/PoolDetails/PoolStats/PoolParametersDaoFees' -import PoolTotalStaked from '@main/components/PagePool/PoolDetails/PoolStats/PoolTotalStaked' +import PoolParametersDaoFees from '@/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersDaoFees' +import PoolTotalStaked from '@/dex/components/PagePool/PoolDetails/PoolStats/PoolTotalStaked' import Stats from '@ui/Stats' -import Contracts from '@main/components/PagePool/PoolDetails/PoolStats/Contracts' -import PoolParametersA from '@main/components/PagePool/PoolDetails/PoolStats/PoolParametersA' -import type { PoolParameters } from '@main/types/main.types' +import Contracts from '@/dex/components/PagePool/PoolDetails/PoolStats/Contracts' +import PoolParametersA from '@/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersA' +import type { PoolParameters } from '@/dex/types/main.types' const PoolParameters: React.FC< { diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersA.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersA.tsx index 501aa46cb..519ba2347 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersA.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersA.tsx @@ -4,10 +4,10 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' import dayjs from '@ui-kit/lib/dayjs' -import { StyledInformationSquare16 } from '@main/components/PagePool/PoolDetails/PoolStats/styles' +import { StyledInformationSquare16 } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' import Chip from '@ui/Typography/Chip' import Item from '@ui/Items/Item' -import { PoolData } from '@main/types/main.types' +import { PoolData } from '@/dex/types/main.types' const PoolParametersA: React.FC<{ parameters: PoolData['parameters'] }> = ({ parameters }) => { const { A, initial_A, initial_A_time, future_A, future_A_time, virtualPrice } = parameters ?? {} diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersDaoFees.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersDaoFees.tsx index 7fbb5929f..29314622c 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersDaoFees.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolParametersDaoFees.tsx @@ -5,7 +5,7 @@ import { formatNumber, getFractionDigitsOptions } from '@ui/utils' import { Chip } from '@ui/Typography' import { Item } from '@ui/Items' -import { StyledInformationSquare16 } from '@main/components/PagePool/PoolDetails/PoolStats/styles' +import { StyledInformationSquare16 } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' type AdminFee = string | number | undefined diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolTotalStaked.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolTotalStaked.tsx index d965e8011..8567387c4 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolTotalStaked.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/PoolTotalStaked.tsx @@ -2,10 +2,10 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' import { weiToEther } from '@ui-kit/utils' -import usePoolTotalStaked from '@main/hooks/usePoolTotalStaked' +import usePoolTotalStaked from '@/dex/hooks/usePoolTotalStaked' import Item from '@ui/Items/Item' import Items from '@ui/Items/Items' -import { PoolDataCacheOrApi } from '@main/types/main.types' +import { PoolDataCacheOrApi } from '@/dex/types/main.types' interface PoolTotalStakedProps { poolDataCacheOrApi: PoolDataCacheOrApi diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/Rewards.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/Rewards.tsx index c5aa4e954..a8755e67e 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/Rewards.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/Rewards.tsx @@ -1,25 +1,25 @@ import { t } from '@lingui/macro' import React from 'react' import styled from 'styled-components' -import { copyToClipboard } from '@main/lib/utils' +import { copyToClipboard } from '@/dex/lib/utils' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { haveRewardsApy } from '@main/utils/utilsCurvejs' -import { shortenTokenName } from '@main/utils' -import useStore from '@main/store/useStore' -import useCampaignRewardsMapper from '@main/hooks/useCampaignRewardsMapper' -import { LARGE_APY } from '@main/constants' +import { haveRewardsApy } from '@/dex/utils/utilsCurvejs' +import { shortenTokenName } from '@/dex/utils' +import useStore from '@/dex/store/useStore' +import useCampaignRewardsMapper from '@/dex/hooks/useCampaignRewardsMapper' +import { LARGE_APY } from '@/dex/constants' import { Chip } from '@ui/Typography' -import { DescriptionChip, StyledIconButton, StyledStats } from '@main/components/PagePool/PoolDetails/PoolStats/styles' +import { DescriptionChip, StyledIconButton, StyledStats } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' import { ExternalLink } from '@ui/Link' import Box from '@ui/Box' -import ChipVolatileBaseApy from '@main/components/PagePoolList/components/ChipVolatileBaseApy' +import ChipVolatileBaseApy from '@/dex/components/PagePoolList/components/ChipVolatileBaseApy' import Icon from '@ui/Icon' import IconTooltip from '@ui/Tooltip/TooltipIcon' import Tooltip from '@ui/Tooltip' -import PoolRewardsCrv from '@main/components/PoolRewardsCrv' +import PoolRewardsCrv from '@/dex/components/PoolRewardsCrv' import Spacer from '@ui/Spacer' -import CampaignRewardsRow from '@main/components/CampaignRewardsRow' -import { ChainId, RewardsApy, PoolData } from '@main/types/main.types' +import CampaignRewardsRow from '@/dex/components/CampaignRewardsRow' +import { ChainId, RewardsApy, PoolData } from '@/dex/types/main.types' type RewardsProps = { chainId: ChainId diff --git a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/index.tsx b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/index.tsx index 34aebd48b..2c5fd578c 100644 --- a/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/index.tsx +++ b/apps/main/src/dex/components/PagePool/PoolDetails/PoolStats/index.tsx @@ -1,22 +1,22 @@ -import type { PageTransferProps } from '@main/components/PagePool/types' +import type { PageTransferProps } from '@/dex/components/PagePool/types' import { t } from '@lingui/macro' import React, { useEffect } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import useTokenAlert from '@main/hooks/useTokenAlert' -import useStore from '@main/store/useStore' -import { getPath } from '@main/utils/utilsRouter' +import useTokenAlert from '@/dex/hooks/useTokenAlert' +import useStore from '@/dex/store/useStore' +import { getPath } from '@/dex/utils/utilsRouter' import AlertBox from '@ui/AlertBox' import Box from '@ui/Box' -import CurrencyReserves from '@main/components/PagePool/PoolDetails/CurrencyReserves' +import CurrencyReserves from '@/dex/components/PagePool/PoolDetails/CurrencyReserves' import ExternalLink from '@ui/Link/ExternalLink' -import PoolParameters from '@main/components/PagePool/PoolDetails/PoolStats/PoolParameters' -import RewardsComp from '@main/components/PagePool/PoolDetails/PoolStats/Rewards' +import PoolParameters from '@/dex/components/PagePool/PoolDetails/PoolStats/PoolParameters' +import RewardsComp from '@/dex/components/PagePool/PoolDetails/PoolStats/Rewards' import { InternalLink } from '@ui/Link' -import { TokensMapper, PoolAlert } from '@main/types/main.types' +import { TokensMapper, PoolAlert } from '@/dex/types/main.types' type PoolStatsProps = { poolAlert: PoolAlert | null diff --git a/apps/main/src/dex/components/PagePool/Swap/index.tsx b/apps/main/src/dex/components/PagePool/Swap/index.tsx index cb27565a2..68f550de2 100644 --- a/apps/main/src/dex/components/PagePool/Swap/index.tsx +++ b/apps/main/src/dex/components/PagePool/Swap/index.tsx @@ -1,40 +1,40 @@ -import type { ExchangeOutput, FormStatus, FormValues, StepKey } from '@main/components/PagePool/Swap/types' -import type { EstimatedGas as FormEstGas, PageTransferProps, Seed } from '@main/components/PagePool/types' +import type { ExchangeOutput, FormStatus, FormValues, StepKey } from '@/dex/components/PagePool/Swap/types' +import type { EstimatedGas as FormEstGas, PageTransferProps, Seed } from '@/dex/components/PagePool/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import isNaN from 'lodash/isNaN' import isUndefined from 'lodash/isUndefined' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_EXCHANGE_OUTPUT, DEFAULT_EST_GAS, getSwapTokens } from '@main/components/PagePool/Swap/utils' -import { NETWORK_TOKEN, REFRESH_INTERVAL } from '@main/constants' +import { DEFAULT_EXCHANGE_OUTPUT, DEFAULT_EST_GAS, getSwapTokens } from '@/dex/components/PagePool/Swap/utils' +import { NETWORK_TOKEN, REFRESH_INTERVAL } from '@/dex/constants' import { formatNumber } from '@ui/utils' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' import cloneDeep from 'lodash/cloneDeep' -import usePageVisibleInterval from '@main/hooks/usePageVisibleInterval' -import useStore from '@main/store/useStore' -import { FieldsWrapper } from '@main/components/PagePool/styles' +import usePageVisibleInterval from '@/dex/hooks/usePageVisibleInterval' +import useStore from '@/dex/store/useStore' +import { FieldsWrapper } from '@/dex/components/PagePool/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@main/components/AlertFormError' -import AlertFormWarning from '@main/components/AlertFormWarning' -import AlertSlippage from '@main/components/AlertSlippage' +import AlertFormError from '@/dex/components/AlertFormError' +import AlertFormWarning from '@/dex/components/AlertFormWarning' +import AlertSlippage from '@/dex/components/AlertSlippage' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' -import ChipInpHelper from '@main/components/ChipInpHelper' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import DetailInfoPriceImpact from '@main/components/PageRouterSwap/components/DetailInfoPriceImpact' -import DetailInfoExchangeRate from '@main/components/PageRouterSwap/components/DetailInfoExchangeRate' -import DetailInfoSlippageTolerance from '@main/components/PagePool/components/DetailInfoSlippageTolerance' -import FieldHelperUsdRate from '@main/components/FieldHelperUsdRate' +import ChipInpHelper from '@/dex/components/ChipInpHelper' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import DetailInfoPriceImpact from '@/dex/components/PageRouterSwap/components/DetailInfoPriceImpact' +import DetailInfoExchangeRate from '@/dex/components/PageRouterSwap/components/DetailInfoExchangeRate' +import DetailInfoSlippageTolerance from '@/dex/components/PagePool/components/DetailInfoSlippageTolerance' +import FieldHelperUsdRate from '@/dex/components/FieldHelperUsdRate' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' import Stepper from '@ui/Stepper' -import TokenComboBox from '@main/components/ComboBoxSelectToken' -import TransferActions from '@main/components/PagePool/components/TransferActions' +import TokenComboBox from '@/dex/components/ComboBoxSelectToken' +import TransferActions from '@/dex/components/PagePool/components/TransferActions' import TxInfoBar from '@ui/TxInfoBar' -import WarningModal from '@main/components/PagePool/components/WarningModal' -import { Balances, CurveApi, TokensMapper, PoolData, PoolAlert } from '@main/types/main.types' +import WarningModal from '@/dex/components/PagePool/components/WarningModal' +import { Balances, CurveApi, TokensMapper, PoolData, PoolAlert } from '@/dex/types/main.types' const Swap = ({ chainIdPoolId, diff --git a/apps/main/src/dex/components/PagePool/Swap/types.ts b/apps/main/src/dex/components/PagePool/Swap/types.ts index 903316bf9..ff4cfc540 100644 --- a/apps/main/src/dex/components/PagePool/Swap/types.ts +++ b/apps/main/src/dex/components/PagePool/Swap/types.ts @@ -1,4 +1,4 @@ -import type { ExchangeRate, Route, RoutesAndOutputModal } from '@main/components/PageRouterSwap/types' +import type { ExchangeRate, Route, RoutesAndOutputModal } from '@/dex/components/PageRouterSwap/types' export type StepKey = 'APPROVAL' | 'SWAP' | '' diff --git a/apps/main/src/dex/components/PagePool/Swap/utils.ts b/apps/main/src/dex/components/PagePool/Swap/utils.ts index a471eb733..b1a367d82 100644 --- a/apps/main/src/dex/components/PagePool/Swap/utils.ts +++ b/apps/main/src/dex/components/PagePool/Swap/utils.ts @@ -1,9 +1,9 @@ -import type { EstimatedGas as FormEstGas } from '@main/components/PagePool/types' -import type { ExchangeOutput, FormStatus, FormValues } from '@main/components/PagePool/Swap/types' +import type { EstimatedGas as FormEstGas } from '@/dex/components/PagePool/types' +import type { ExchangeOutput, FormStatus, FormValues } from '@/dex/components/PagePool/Swap/types' import sortBy from 'lodash/sortBy' import cloneDeep from 'lodash/cloneDeep' -import { Token, TokensMapper, PoolDataCacheOrApi } from '@main/types/main.types' +import { Token, TokensMapper, PoolDataCacheOrApi } from '@/dex/types/main.types' export const DEFAULT_EST_GAS: FormEstGas = { estimatedGas: 0, diff --git a/apps/main/src/dex/components/PagePool/UserDetails/index.tsx b/apps/main/src/dex/components/PagePool/UserDetails/index.tsx index af840f358..d4a3dae59 100644 --- a/apps/main/src/dex/components/PagePool/UserDetails/index.tsx +++ b/apps/main/src/dex/components/PagePool/UserDetails/index.tsx @@ -1,14 +1,14 @@ -import type { TransferProps } from '@main/components/PagePool/types' +import type { TransferProps } from '@/dex/components/PagePool/types' import { t } from '@lingui/macro' import React, { useMemo } from 'react' import styled from 'styled-components' -import { getUserPoolActiveKey } from '@main/store/createUserSlice' -import { shortenTokenAddress } from '@main/utils' +import { getUserPoolActiveKey } from '@/dex/store/createUserSlice' +import { shortenTokenAddress } from '@/dex/utils' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { Chip } from '@ui/Typography' import Box from '@ui/Box' -import PoolRewardsCrv from '@main/components/PoolRewardsCrv' +import PoolRewardsCrv from '@/dex/components/PoolRewardsCrv' import Stats from '@ui/Stats' import Table from '@ui/Table' diff --git a/apps/main/src/dex/components/PagePool/Withdraw/components/FormClaim.tsx b/apps/main/src/dex/components/PagePool/Withdraw/components/FormClaim.tsx index af5653883..f9fb34f38 100644 --- a/apps/main/src/dex/components/PagePool/Withdraw/components/FormClaim.tsx +++ b/apps/main/src/dex/components/PagePool/Withdraw/components/FormClaim.tsx @@ -1,23 +1,23 @@ -import type { FormStatus, FormValues } from '@main/components/PagePool/Withdraw/types' +import type { FormStatus, FormValues } from '@/dex/components/PagePool/Withdraw/types' import type { Step } from '@ui/Stepper/types' -import type { TransferProps } from '@main/components/PagePool/types' +import type { TransferProps } from '@/dex/components/PagePool/types' import React, { useCallback, useEffect, useRef, useState } from 'react' import { t, Trans } from '@lingui/macro' import cloneDeep from 'lodash/cloneDeep' import styled from 'styled-components' -import { DEFAULT_FORM_STATUS, getClaimText } from '@main/components/PagePool/Withdraw/utils' +import { DEFAULT_FORM_STATUS, getClaimText } from '@/dex/components/PagePool/Withdraw/utils' import { getStepStatus } from '@ui/Stepper/helpers' import { formatNumber } from '@ui/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@main/components/AlertFormError' +import AlertFormError from '@/dex/components/AlertFormError' import Box from '@ui/Box' import Button from '@ui/Button' import Stats from '@ui/Stats' import Stepper from '@ui/Stepper' -import TransferActions from '@main/components/PagePool/components/TransferActions' +import TransferActions from '@/dex/components/PagePool/components/TransferActions' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi, PoolData } from '@main/types/main.types' +import { CurveApi, PoolData } from '@/dex/types/main.types' const FormClaim = ({ curve, poolData, poolDataCacheOrApi, routerParams, seed, userPoolBalances }: TransferProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dex/components/PagePool/Withdraw/components/FormUnstake.tsx b/apps/main/src/dex/components/PagePool/Withdraw/components/FormUnstake.tsx index d45051b63..e45bdabe2 100644 --- a/apps/main/src/dex/components/PagePool/Withdraw/components/FormUnstake.tsx +++ b/apps/main/src/dex/components/PagePool/Withdraw/components/FormUnstake.tsx @@ -1,19 +1,19 @@ -import type { FormStatus, FormValues } from '@main/components/PagePool/Withdraw/types' +import type { FormStatus, FormValues } from '@/dex/components/PagePool/Withdraw/types' import type { Step } from '@ui/Stepper/types' -import type { TransferProps } from '@main/components/PagePool/types' +import type { TransferProps } from '@/dex/components/PagePool/types' import { useCallback, useEffect, useRef, useState } from 'react' import { t } from '@lingui/macro' -import { DEFAULT_ESTIMATED_GAS } from '@main/components/PagePool' +import { DEFAULT_ESTIMATED_GAS } from '@/dex/components/PagePool' import { getStepStatus } from '@ui/Stepper/helpers' import { formatNumber } from '@ui/utils' -import useStore from '@main/store/useStore' -import AlertFormError from '@main/components/AlertFormError' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import FieldLpToken from '@main/components/PagePool/components/FieldLpToken' -import TransferActions from '@main/components/PagePool/components/TransferActions' +import useStore from '@/dex/store/useStore' +import AlertFormError from '@/dex/components/AlertFormError' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import FieldLpToken from '@/dex/components/PagePool/components/FieldLpToken' +import TransferActions from '@/dex/components/PagePool/components/TransferActions' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { CurveApi, PoolData } from '@main/types/main.types' +import { CurveApi, PoolData } from '@/dex/types/main.types' const FormUnstake = ({ curve, poolData, poolDataCacheOrApi, routerParams, seed, userPoolBalances }: TransferProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/dex/components/PagePool/Withdraw/components/FormWithdraw.tsx b/apps/main/src/dex/components/PagePool/Withdraw/components/FormWithdraw.tsx index c69682ed6..ab4a775e7 100644 --- a/apps/main/src/dex/components/PagePool/Withdraw/components/FormWithdraw.tsx +++ b/apps/main/src/dex/components/PagePool/Withdraw/components/FormWithdraw.tsx @@ -1,5 +1,5 @@ -import type { FormStatus, FormValues, StepKey } from '@main/components/PagePool/Withdraw/types' -import type { Slippage, TransferProps } from '@main/components/PagePool/types' +import type { FormStatus, FormValues, StepKey } from '@/dex/components/PagePool/Withdraw/types' +import type { Slippage, TransferProps } from '@/dex/components/PagePool/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' @@ -8,30 +8,30 @@ import isNaN from 'lodash/isNaN' import isUndefined from 'lodash/isUndefined' import styled, { css } from 'styled-components' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import { amountsDescription } from '@main/components/PagePool/utils' +import { amountsDescription } from '@/dex/components/PagePool/utils' import { mediaQueries } from '@ui/utils/responsive' -import { resetFormAmounts } from '@main/components/PagePool/Withdraw/utils' +import { resetFormAmounts } from '@/dex/components/PagePool/Withdraw/utils' import { formatNumber } from '@ui/utils' -import useStore from '@main/store/useStore' -import { DEFAULT_ESTIMATED_GAS, DEFAULT_SLIPPAGE } from '@main/components/PagePool' -import { FieldsWrapper } from '@main/components/PagePool/styles' +import useStore from '@/dex/store/useStore' +import { DEFAULT_ESTIMATED_GAS, DEFAULT_SLIPPAGE } from '@/dex/components/PagePool' +import { FieldsWrapper } from '@/dex/components/PagePool/styles' import { Radio, RadioGroup } from '@ui/Radio' -import AlertFormError from '@main/components/AlertFormError' -import AlertSlippage from '@main/components/AlertSlippage' +import AlertFormError from '@/dex/components/AlertFormError' +import AlertSlippage from '@/dex/components/AlertSlippage' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' -import DetailInfoSlippage from '@main/components/PagePool/components/DetailInfoSlippage' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import DetailInfoSlippageTolerance from '@main/components/PagePool/components/DetailInfoSlippageTolerance' -import SelectedLpTokenExpected from '@main/components/PagePool/components/SelectedLpTokenExpected' -import SelectedOneCoinExpected from '@main/components/PagePool/components/SelectedOneCoinExpected' -import FieldLpToken from '@main/components/PagePool/components/FieldLpToken' -import FieldToken from '@main/components/PagePool/components/FieldToken' +import DetailInfoSlippage from '@/dex/components/PagePool/components/DetailInfoSlippage' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import DetailInfoSlippageTolerance from '@/dex/components/PagePool/components/DetailInfoSlippageTolerance' +import SelectedLpTokenExpected from '@/dex/components/PagePool/components/SelectedLpTokenExpected' +import SelectedOneCoinExpected from '@/dex/components/PagePool/components/SelectedOneCoinExpected' +import FieldLpToken from '@/dex/components/PagePool/components/FieldLpToken' +import FieldToken from '@/dex/components/PagePool/components/FieldToken' import Stepper from '@ui/Stepper' -import TransferActions from '@main/components/PagePool/components/TransferActions' +import TransferActions from '@/dex/components/PagePool/components/TransferActions' import TxInfoBar from '@ui/TxInfoBar' -import WarningModal from '@main/components/PagePool/components/WarningModal' -import { CurveApi, Pool, PoolData } from '@main/types/main.types' +import WarningModal from '@/dex/components/PagePool/components/WarningModal' +import { CurveApi, Pool, PoolData } from '@/dex/types/main.types' const FormWithdraw = ({ chainIdPoolId, diff --git a/apps/main/src/dex/components/PagePool/Withdraw/index.tsx b/apps/main/src/dex/components/PagePool/Withdraw/index.tsx index f40770d06..f3498e61d 100644 --- a/apps/main/src/dex/components/PagePool/Withdraw/index.tsx +++ b/apps/main/src/dex/components/PagePool/Withdraw/index.tsx @@ -1,17 +1,17 @@ -import type { FormType } from '@main/components/PagePool/Withdraw/types' -import type { TransferProps } from '@main/components/PagePool/types' +import type { FormType } from '@/dex/components/PagePool/Withdraw/types' +import type { TransferProps } from '@/dex/components/PagePool/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { isValidAddress } from '@main/utils' -import useStore from '@main/store/useStore' +import { isValidAddress } from '@/dex/utils' +import useStore from '@/dex/store/useStore' import { SlideTabs, SlideTab } from '@ui/TabSlide' -import { StyledTabSlide } from '@main/components/PagePool/styles' -import FormClaim from '@main/components/PagePool/Withdraw/components/FormClaim' -import FormWithdraw from '@main/components/PagePool/Withdraw/components/FormWithdraw' -import FormUnstake from '@main/components/PagePool/Withdraw/components/FormUnstake' +import { StyledTabSlide } from '@/dex/components/PagePool/styles' +import FormClaim from '@/dex/components/PagePool/Withdraw/components/FormClaim' +import FormWithdraw from '@/dex/components/PagePool/Withdraw/components/FormWithdraw' +import FormUnstake from '@/dex/components/PagePool/Withdraw/components/FormUnstake' const Withdraw: React.FC = (transferProps) => { const tabsRef = useRef(null) diff --git a/apps/main/src/dex/components/PagePool/Withdraw/types.ts b/apps/main/src/dex/components/PagePool/Withdraw/types.ts index 19953c15c..1347325ee 100644 --- a/apps/main/src/dex/components/PagePool/Withdraw/types.ts +++ b/apps/main/src/dex/components/PagePool/Withdraw/types.ts @@ -1,5 +1,5 @@ -import type { Amount } from '@main/components/PagePool/utils' -import { ClaimableReward } from '@main/types/main.types' +import type { Amount } from '@/dex/components/PagePool/utils' +import { ClaimableReward } from '@/dex/types/main.types' export type FormType = 'UNSTAKE' | 'WITHDRAW' | 'CLAIM' export type StepKey = 'APPROVAL' | 'UNSTAKE' | 'WITHDRAW' | 'CLAIM' | '' diff --git a/apps/main/src/dex/components/PagePool/Withdraw/utils.ts b/apps/main/src/dex/components/PagePool/Withdraw/utils.ts index 555e3eacc..b14b3840e 100644 --- a/apps/main/src/dex/components/PagePool/Withdraw/utils.ts +++ b/apps/main/src/dex/components/PagePool/Withdraw/utils.ts @@ -1,4 +1,4 @@ -import type { FormStatus, FormValues } from '@main/components/PagePool/Withdraw/types' +import type { FormStatus, FormValues } from '@/dex/components/PagePool/Withdraw/types' import { t } from '@lingui/macro' diff --git a/apps/main/src/dex/components/PagePool/components/AddGaugeLink.tsx b/apps/main/src/dex/components/PagePool/components/AddGaugeLink.tsx index 9a0480987..e7ddf5607 100644 --- a/apps/main/src/dex/components/PagePool/components/AddGaugeLink.tsx +++ b/apps/main/src/dex/components/PagePool/components/AddGaugeLink.tsx @@ -1,21 +1,21 @@ -import type { PageTransferProps } from '@main/components/PagePool/types' +import type { PageTransferProps } from '@/dex/components/PagePool/types' import styled from 'styled-components' import { t } from '@lingui/macro' import { useNavigate, useParams } from 'react-router-dom' -import { getPath } from '@main/utils/utilsRouter' -import useStore from '@main/store/useStore' +import { getPath } from '@/dex/utils/utilsRouter' +import useStore from '@/dex/store/useStore' import { TWOCOINCRYPTOSWAP, TWOCOINCRYPTOSWAPNG, THREECOINCRYPTOSWAP, STABLESWAP, STABLESWAPOLD, -} from '@main/components/PageDeployGauge/constants' +} from '@/dex/components/PageDeployGauge/constants' import InteralLinkButton from '@ui/InternalLinkButton' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' const AddGaugeLink = ({ chainId, diff --git a/apps/main/src/dex/components/PagePool/components/AlertSeedAmounts.tsx b/apps/main/src/dex/components/PagePool/components/AlertSeedAmounts.tsx index 62c466217..db48b6a72 100644 --- a/apps/main/src/dex/components/PagePool/components/AlertSeedAmounts.tsx +++ b/apps/main/src/dex/components/PagePool/components/AlertSeedAmounts.tsx @@ -1,4 +1,4 @@ -import type { Seed } from '@main/components/PagePool/types' +import type { Seed } from '@/dex/components/PagePool/types' import React, { useCallback, useEffect, useState } from 'react' import { t } from '@lingui/macro' @@ -7,7 +7,7 @@ import styled from 'styled-components' import { formatNumber } from '@ui/utils' import AlertBox from '@ui/AlertBox' -import { PoolData } from '@main/types/main.types' +import { PoolData } from '@/dex/types/main.types' type Props = { seed: Seed diff --git a/apps/main/src/dex/components/PagePool/components/CampaignRewardsBanner.tsx b/apps/main/src/dex/components/PagePool/components/CampaignRewardsBanner.tsx index 98a3fce54..74bdfb83a 100644 --- a/apps/main/src/dex/components/PagePool/components/CampaignRewardsBanner.tsx +++ b/apps/main/src/dex/components/PagePool/components/CampaignRewardsBanner.tsx @@ -1,7 +1,7 @@ import { t } from '@lingui/macro' import styled from 'styled-components' -import useCampaignRewardsMapper from '@main/hooks/useCampaignRewardsMapper' +import useCampaignRewardsMapper from '@/dex/hooks/useCampaignRewardsMapper' import CampaignBannerComp from 'ui/src/CampaignRewards/CampaignBannerComp' diff --git a/apps/main/src/dex/components/PagePool/components/ContractComp.tsx b/apps/main/src/dex/components/PagePool/components/ContractComp.tsx index 92ed0e7ac..0ce8d5fbb 100644 --- a/apps/main/src/dex/components/PagePool/components/ContractComp.tsx +++ b/apps/main/src/dex/components/PagePool/components/ContractComp.tsx @@ -1,13 +1,13 @@ import React from 'react' import styled from 'styled-components' -import { copyToClipboard } from '@main/lib/utils' -import { shortenTokenAddress } from '@main/utils' -import { StyledIconButton } from '@main/components/PagePool/PoolDetails/PoolStats/styles' +import { copyToClipboard } from '@/dex/lib/utils' +import { shortenTokenAddress } from '@/dex/utils' +import { StyledIconButton } from '@/dex/components/PagePool/PoolDetails/PoolStats/styles' import Box from '@ui/Box' import ExternalLink from '@ui/Link/ExternalLink' import Icon from '@ui/Icon' -import useStore from '@main/store/useStore' -import { ChainId } from '@main/types/main.types' +import useStore from '@/dex/store/useStore' +import { ChainId } from '@/dex/types/main.types' const ContractComp = ({ address, diff --git a/apps/main/src/dex/components/PagePool/components/DetailInfoEstLpTokens.tsx b/apps/main/src/dex/components/PagePool/components/DetailInfoEstLpTokens.tsx index 245dda024..915776fa5 100644 --- a/apps/main/src/dex/components/PagePool/components/DetailInfoEstLpTokens.tsx +++ b/apps/main/src/dex/components/PagePool/components/DetailInfoEstLpTokens.tsx @@ -1,4 +1,4 @@ -import type { FormLpTokenExpected } from '@main/components/PagePool/Deposit/types' +import type { FormLpTokenExpected } from '@/dex/components/PagePool/Deposit/types' import React, { useMemo } from 'react' import { t } from '@lingui/macro' @@ -7,7 +7,7 @@ import { formatNumber } from '@ui/utils' import DetailInfo from '@ui/DetailInfo' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import { PoolDataCacheOrApi } from '@main/types/main.types' +import { PoolDataCacheOrApi } from '@/dex/types/main.types' const DetailInfoEstLpTokens = ({ formLpTokenExpected, diff --git a/apps/main/src/dex/components/PagePool/components/DetailInfoExpectedApy.tsx b/apps/main/src/dex/components/PagePool/components/DetailInfoExpectedApy.tsx index bfe8937ef..238f0f4a7 100644 --- a/apps/main/src/dex/components/PagePool/components/DetailInfoExpectedApy.tsx +++ b/apps/main/src/dex/components/PagePool/components/DetailInfoExpectedApy.tsx @@ -4,13 +4,13 @@ import styled from 'styled-components' import { formatNumber } from '@ui/utils' import { weiToEther } from '@ui-kit/utils' -import usePoolTotalStaked from '@main/hooks/usePoolTotalStaked' +import usePoolTotalStaked from '@/dex/hooks/usePoolTotalStaked' import Box from '@ui/Box' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' import TooltipIcon from '@ui/Tooltip/TooltipIcon' -import { PoolDataCacheOrApi } from '@main/types/main.types' +import { PoolDataCacheOrApi } from '@/dex/types/main.types' const DetailInfoExpectedApy = ({ crvApr, diff --git a/apps/main/src/dex/components/PagePool/components/DetailInfoSlippage.tsx b/apps/main/src/dex/components/PagePool/components/DetailInfoSlippage.tsx index 0679297b4..71898f674 100644 --- a/apps/main/src/dex/components/PagePool/components/DetailInfoSlippage.tsx +++ b/apps/main/src/dex/components/PagePool/components/DetailInfoSlippage.tsx @@ -1,4 +1,4 @@ -import type { Slippage } from '@main/components/PagePool/types' +import type { Slippage } from '@/dex/components/PagePool/types' import React, { useMemo } from 'react' import { t, Trans } from '@lingui/macro' diff --git a/apps/main/src/dex/components/PagePool/components/DetailInfoSlippageTolerance.tsx b/apps/main/src/dex/components/PagePool/components/DetailInfoSlippageTolerance.tsx index 50e71b2e6..9d47c1275 100644 --- a/apps/main/src/dex/components/PagePool/components/DetailInfoSlippageTolerance.tsx +++ b/apps/main/src/dex/components/PagePool/components/DetailInfoSlippageTolerance.tsx @@ -1,4 +1,4 @@ -import type { AdvancedSettingsProps } from '@main/components/AdvancedSettings' +import type { AdvancedSettingsProps } from '@/dex/components/AdvancedSettings' import { t } from '@lingui/macro' import styled from 'styled-components' @@ -6,7 +6,7 @@ import styled from 'styled-components' import { formatNumber } from '@ui/utils' import DetailInfo from '@ui/DetailInfo' -import AdvancedSettings from '@main/components/AdvancedSettings' +import AdvancedSettings from '@/dex/components/AdvancedSettings' import Icon from '@ui/Icon' const DetailInfoSlippageTolerance = ({ customLabel, ...props }: AdvancedSettingsProps & { customLabel?: string }) => ( diff --git a/apps/main/src/dex/components/PagePool/components/FieldToken.tsx b/apps/main/src/dex/components/PagePool/components/FieldToken.tsx index ca8755f5a..a65e91819 100644 --- a/apps/main/src/dex/components/PagePool/components/FieldToken.tsx +++ b/apps/main/src/dex/components/PagePool/components/FieldToken.tsx @@ -1,11 +1,11 @@ import { t } from '@lingui/macro' -import { NETWORK_TOKEN } from '@main/constants' -import { shortenTokenAddress, shortenTokenName } from '@main/utils' +import { NETWORK_TOKEN } from '@/dex/constants' +import { shortenTokenAddress, shortenTokenName } from '@/dex/utils' import Box from '@ui/Box' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import TokenIcon from '@main/components/TokenIcon' +import TokenIcon from '@/dex/components/TokenIcon' type Props = { idx: number diff --git a/apps/main/src/dex/components/PagePool/components/SelectedLpTokenExpected.tsx b/apps/main/src/dex/components/PagePool/components/SelectedLpTokenExpected.tsx index a29133b74..c3133eae5 100644 --- a/apps/main/src/dex/components/PagePool/components/SelectedLpTokenExpected.tsx +++ b/apps/main/src/dex/components/PagePool/components/SelectedLpTokenExpected.tsx @@ -1,9 +1,9 @@ -import type { Amount } from '@main/components/PagePool/utils' +import type { Amount } from '@/dex/components/PagePool/utils' import * as React from 'react' import styled from 'styled-components' -import { shortenTokenAddress } from '@main/utils' +import { shortenTokenAddress } from '@/dex/utils' import { formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' @@ -11,8 +11,8 @@ import Box from '@ui/Box' import Spacer from '@ui/Spacer' import Loader from '@ui/Loader' import TextEllipsis from '@ui/TextEllipsis' -import TokenIcon from '@main/components/TokenIcon' -import { TokensMapper, PoolDataCacheOrApi } from '@main/types/main.types' +import TokenIcon from '@/dex/components/TokenIcon' +import { TokensMapper, PoolDataCacheOrApi } from '@/dex/types/main.types' const SelectedLpTokenExpected = ({ amounts, diff --git a/apps/main/src/dex/components/PagePool/components/SelectedOneCoinExpected.tsx b/apps/main/src/dex/components/PagePool/components/SelectedOneCoinExpected.tsx index 5ae4a4abb..748082861 100644 --- a/apps/main/src/dex/components/PagePool/components/SelectedOneCoinExpected.tsx +++ b/apps/main/src/dex/components/PagePool/components/SelectedOneCoinExpected.tsx @@ -1,9 +1,9 @@ -import type { Amount } from '@main/components/PagePool/utils' +import type { Amount } from '@/dex/components/PagePool/utils' import * as React from 'react' import styled from 'styled-components' -import { shortenTokenAddress } from '@main/utils' +import { shortenTokenAddress } from '@/dex/utils' import { formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' @@ -12,8 +12,8 @@ import Loader from '@ui/Loader' import Spacer from '@ui/Spacer' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import TextEllipsis from '@ui/TextEllipsis' -import TokenIcon from '@main/components/TokenIcon' -import { TokensMapper, PoolDataCacheOrApi } from '@main/types/main.types' +import TokenIcon from '@/dex/components/TokenIcon' +import { TokensMapper, PoolDataCacheOrApi } from '@/dex/types/main.types' const SelectedOneCoinExpected = ({ amounts, diff --git a/apps/main/src/dex/components/PagePool/components/TransferActions.tsx b/apps/main/src/dex/components/PagePool/components/TransferActions.tsx index 6ff18d062..c176ca66a 100644 --- a/apps/main/src/dex/components/PagePool/components/TransferActions.tsx +++ b/apps/main/src/dex/components/PagePool/components/TransferActions.tsx @@ -1,16 +1,16 @@ -import type { TransferProps } from '@main/components/PagePool/types' +import type { TransferProps } from '@/dex/components/PagePool/types' import React from 'react' import { t } from '@lingui/macro' -import { getChainPoolIdActiveKey } from '@main/utils' -import useStore from '@main/store/useStore' -import useTokenAlert from '@main/hooks/useTokenAlert' +import { getChainPoolIdActiveKey } from '@/dex/utils' +import useStore from '@/dex/store/useStore' +import useTokenAlert from '@/dex/hooks/useTokenAlert' import AlertBox from '@ui/AlertBox' -import AlertSeedAmounts from '@main/components/PagePool/components/AlertSeedAmounts' -import FormConnectWallet from '@main/components/FormConnectWallet' -import { useSignerAddress } from '@main/entities/signer' +import AlertSeedAmounts from '@/dex/components/PagePool/components/AlertSeedAmounts' +import FormConnectWallet from '@/dex/components/FormConnectWallet' +import { useSignerAddress } from '@/dex/entities/signer' const TransferActions = ({ children, diff --git a/apps/main/src/dex/components/PagePool/index.tsx b/apps/main/src/dex/components/PagePool/index.tsx index 9fec18b04..5f9a62e82 100644 --- a/apps/main/src/dex/components/PagePool/index.tsx +++ b/apps/main/src/dex/components/PagePool/index.tsx @@ -6,25 +6,25 @@ import type { Seed, Slippage, TransferFormType, -} from '@main/components/PagePool/types' +} from '@/dex/components/PagePool/types' import { t } from '@lingui/macro' import { useCallback, useEffect, useMemo, useState } from 'react' import styled from 'styled-components' -import { REFRESH_INTERVAL, ROUTE } from '@main/constants' -import usePageVisibleInterval from '@main/hooks/usePageVisibleInterval' -import usePoolAlert from '@main/hooks/usePoolAlert' -import useTokensMapper from '@main/hooks/useTokensMapper' -import { getUserPoolActiveKey } from '@main/store/createUserSlice' -import useStore from '@main/store/useStore' +import { REFRESH_INTERVAL, ROUTE } from '@/dex/constants' +import usePageVisibleInterval from '@/dex/hooks/usePageVisibleInterval' +import usePoolAlert from '@/dex/hooks/usePoolAlert' +import useTokensMapper from '@/dex/hooks/useTokensMapper' +import { getUserPoolActiveKey } from '@/dex/store/createUserSlice' +import useStore from '@/dex/store/useStore' import { breakpoints } from '@ui/utils/responsive' -import { getChainPoolIdActiveKey } from '@main/utils' -import { getPath } from '@main/utils/utilsRouter' +import { getChainPoolIdActiveKey } from '@/dex/utils' +import { getPath } from '@/dex/utils/utilsRouter' import { useNavigate } from 'react-router-dom' -import Deposit from '@main/components/PagePool/Deposit' -import PoolStats from '@main/components/PagePool/PoolDetails/PoolStats' -import Swap from '@main/components/PagePool/Swap' -import MySharesStats from '@main/components/PagePool/UserDetails' -import Withdraw from '@main/components/PagePool/Withdraw' +import Deposit from '@/dex/components/PagePool/Deposit' +import PoolStats from '@/dex/components/PagePool/PoolDetails/PoolStats' +import Swap from '@/dex/components/PagePool/Swap' +import MySharesStats from '@/dex/components/PagePool/UserDetails' +import Withdraw from '@/dex/components/PagePool/Withdraw' import AlertBox from '@ui/AlertBox' import { AppFormContent, AppFormContentWrapper, AppFormHeader } from '@ui/AppForm' import { @@ -42,12 +42,12 @@ import { ExternalLink } from '@ui/Link' import Tabs, { Tab } from '@ui/Tab' import TextEllipsis from '@ui/TextEllipsis' import { Chip } from '@ui/Typography' -import CampaignRewardsBanner from '@main/components/PagePool/components/CampaignRewardsBanner' -import PoolInfoData from '@main/components/PagePool/PoolDetails/ChartOhlcWrapper' -import PoolParameters from '@main/components/PagePool/PoolDetails/PoolParameters' -import { useGaugeManager } from '@main/entities/gauge' +import CampaignRewardsBanner from '@/dex/components/PagePool/components/CampaignRewardsBanner' +import PoolInfoData from '@/dex/components/PagePool/PoolDetails/ChartOhlcWrapper' +import PoolParameters from '@/dex/components/PagePool/PoolDetails/PoolParameters' +import { useGaugeManager } from '@/dex/entities/gauge' import { BlockSkeleton } from '@ui/skeleton' -import { ManageGauge } from '@main/widgets/manage-gauge' +import { ManageGauge } from '@/dex/widgets/manage-gauge' import { isAddressEqual, type Address } from 'viem' import { useUserProfileStore } from '@ui-kit/features/user-profile' diff --git a/apps/main/src/dex/components/PagePool/types.ts b/apps/main/src/dex/components/PagePool/types.ts index 4278ad0b3..90a19c9ca 100644 --- a/apps/main/src/dex/components/PagePool/types.ts +++ b/apps/main/src/dex/components/PagePool/types.ts @@ -8,7 +8,7 @@ import { PoolData, PoolDataCache, PoolAlert, -} from '@main/types/main.types' +} from '@/dex/types/main.types' export type EstimatedGas = { loading: boolean diff --git a/apps/main/src/dex/components/PagePool/utils.ts b/apps/main/src/dex/components/PagePool/utils.ts index 9bd0d5015..732cb848c 100644 --- a/apps/main/src/dex/components/PagePool/utils.ts +++ b/apps/main/src/dex/components/PagePool/utils.ts @@ -1,5 +1,5 @@ -import { shortenTokenName } from '@main/utils' -import { Balances } from '@main/types/main.types' +import { shortenTokenName } from '@/dex/utils' +import { Balances } from '@/dex/types/main.types' export type Amount = { value: string diff --git a/apps/main/src/dex/components/PagePoolList/Page.tsx b/apps/main/src/dex/components/PagePoolList/Page.tsx index ab9f2a46f..2478ede62 100644 --- a/apps/main/src/dex/components/PagePoolList/Page.tsx +++ b/apps/main/src/dex/components/PagePoolList/Page.tsx @@ -1,22 +1,22 @@ import type { NextPage } from 'next' -import type { FilterKey, Order, PoolListTableLabel, SearchParams, SortKey } from '@main/components/PagePoolList/types' +import type { FilterKey, Order, PoolListTableLabel, SearchParams, SortKey } from '@/dex/components/PagePoolList/types' import { t } from '@lingui/macro' import { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom' import React, { useCallback, useEffect, useMemo, useState } from 'react' import styled from 'styled-components' -import { ROUTE } from '@main/constants' +import { ROUTE } from '@/dex/constants' import { breakpoints } from '@ui/utils/responsive' -import { getPath } from '@main/utils/utilsRouter' -import { scrollToTop } from '@main/utils' -import usePageOnMount from '@main/hooks/usePageOnMount' -import useSearchTermMapper from '@main/hooks/useSearchTermMapper' -import useStore from '@main/store/useStore' - -import DocumentHead from '@main/layout/default/DocumentHead' -import PoolList from '@main/components/PagePoolList/index' -import Settings from '@main/layout/default/Settings' +import { getPath } from '@/dex/utils/utilsRouter' +import { scrollToTop } from '@/dex/utils' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import useSearchTermMapper from '@/dex/hooks/useSearchTermMapper' +import useStore from '@/dex/store/useStore' + +import DocumentHead from '@/dex/layout/default/DocumentHead' +import PoolList from '@/dex/components/PagePoolList/index' +import Settings from '@/dex/layout/default/Settings' enum SEARCH { filter = 'filter', diff --git a/apps/main/src/dex/components/PagePoolList/components/PoolRow.tsx b/apps/main/src/dex/components/PagePoolList/components/PoolRow.tsx index 89f6abce4..6019e42da 100644 --- a/apps/main/src/dex/components/PagePoolList/components/PoolRow.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/PoolRow.tsx @@ -3,19 +3,19 @@ import type { PoolListTableLabel, SearchParams, SearchTermMapper, -} from '@main/components/PagePoolList/types' -import { ROUTE } from '@main/constants' -import TableRowMobile from '@main/components/PagePoolList/components/TableRowMobile' -import TableRow, { TableRowProps } from '@main/components/PagePoolList/components/TableRow' +} from '@/dex/components/PagePoolList/types' +import { ROUTE } from '@/dex/constants' +import TableRowMobile from '@/dex/components/PagePoolList/components/TableRowMobile' +import TableRow, { TableRowProps } from '@/dex/components/PagePoolList/components/TableRow' import React, { FunctionComponent, useCallback, useMemo } from 'react' -import useStore from '@main/store/useStore' -import { getUserActiveKey } from '@main/store/createUserSlice' +import useStore from '@/dex/store/useStore' +import { getUserActiveKey } from '@/dex/store/createUserSlice' import { useNavigate } from 'react-router-dom' -import useCampaignRewardsMapper from '@main/hooks/useCampaignRewardsMapper' -import { parseSearchTermMapper } from '@main/hooks/useSearchTermMapper' +import useCampaignRewardsMapper from '@/dex/hooks/useCampaignRewardsMapper' +import { parseSearchTermMapper } from '@/dex/hooks/useSearchTermMapper' import { TrSearchedTextResult } from 'ui/src/Table' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { CurveApi, ChainId } from '@main/types/main.types' +import { CurveApi, ChainId } from '@/dex/types/main.types' interface PoolRowProps { poolId: string diff --git a/apps/main/src/dex/components/PagePoolList/components/TableCellRewards.tsx b/apps/main/src/dex/components/PagePoolList/components/TableCellRewards.tsx index daf104b0b..d065068a3 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableCellRewards.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableCellRewards.tsx @@ -1,11 +1,11 @@ import styled from 'styled-components' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' -import PoolRewardsCrv from '@main/components/PoolRewardsCrv' -import TableCellRewardsBase from '@main/components/PagePoolList/components/TableCellRewardsBase' -import TableCellRewardsOthers from '@main/components/PagePoolList/components/TableCellRewardsOthers' -import { RewardsApy, PoolData, PoolDataCache } from '@main/types/main.types' +import PoolRewardsCrv from '@/dex/components/PoolRewardsCrv' +import TableCellRewardsBase from '@/dex/components/PagePoolList/components/TableCellRewardsBase' +import TableCellRewardsOthers from '@/dex/components/PagePoolList/components/TableCellRewardsOthers' +import { RewardsApy, PoolData, PoolDataCache } from '@/dex/types/main.types' interface Props { isHighlightBase: boolean diff --git a/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsBase.tsx b/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsBase.tsx index 5f1fa9d15..4bd017c6e 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsBase.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsBase.tsx @@ -1,13 +1,13 @@ import React from 'react' -import { LARGE_APY } from '@main/constants' +import { LARGE_APY } from '@/dex/constants' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' -import ChipVolatileBaseApy from '@main/components/PagePoolList/components/ChipVolatileBaseApy' +import ChipVolatileBaseApy from '@/dex/components/PagePoolList/components/ChipVolatileBaseApy' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import TooltipBaseApy from '@main/components/PagePoolList/components/TooltipBaseApy' -import { RewardBase, PoolData, PoolDataCache } from '@main/types/main.types' +import TooltipBaseApy from '@/dex/components/PagePoolList/components/TooltipBaseApy' +import { RewardBase, PoolData, PoolDataCache } from '@/dex/types/main.types' type Props = { base: RewardBase | undefined diff --git a/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsCrv.tsx b/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsCrv.tsx index 65f5b98a4..7063c9c6a 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsCrv.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsCrv.tsx @@ -1,5 +1,5 @@ -import PoolRewardsCrv from '@main/components/PoolRewardsCrv' -import { RewardsApy, PoolData, PoolDataCache } from '@main/types/main.types' +import PoolRewardsCrv from '@/dex/components/PoolRewardsCrv' +import { RewardsApy, PoolData, PoolDataCache } from '@/dex/types/main.types' type Prop = { isHighlight: boolean diff --git a/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsOthers.tsx b/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsOthers.tsx index 04fee4abe..2234e0b55 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsOthers.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableCellRewardsOthers.tsx @@ -3,7 +3,7 @@ import React from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' -import { RewardsApy } from '@main/types/main.types' +import { RewardsApy } from '@/dex/types/main.types' type Prop = { isHighlight: boolean diff --git a/apps/main/src/dex/components/PagePoolList/components/TableCellTvl.tsx b/apps/main/src/dex/components/PagePoolList/components/TableCellTvl.tsx index 54ac03a22..fa9956277 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableCellTvl.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableCellTvl.tsx @@ -1,7 +1,7 @@ import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' -import { Tvl } from '@main/types/main.types' +import { Tvl } from '@/dex/types/main.types' type Props = { isHighLight: boolean diff --git a/apps/main/src/dex/components/PagePoolList/components/TableCellVolume.tsx b/apps/main/src/dex/components/PagePoolList/components/TableCellVolume.tsx index a80b41cff..a05876802 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableCellVolume.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableCellVolume.tsx @@ -1,7 +1,7 @@ import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' -import { Volume } from '@main/types/main.types' +import { Volume } from '@/dex/types/main.types' type Props = { isHighLight: boolean diff --git a/apps/main/src/dex/components/PagePoolList/components/TableHead.tsx b/apps/main/src/dex/components/PagePoolList/components/TableHead.tsx index 1f6da47cd..c10f840c5 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableHead.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableHead.tsx @@ -1,4 +1,4 @@ -import type { ColumnKeys, Order, PoolListTableLabel, SearchParams, SortKey } from '@main/components/PagePoolList/types' +import type { ColumnKeys, Order, PoolListTableLabel, SearchParams, SortKey } from '@/dex/components/PagePoolList/types' import type { TheadSortButtonProps } from '@ui/Table/TheadSortButton' import { t } from '@lingui/macro' @@ -10,8 +10,8 @@ import { breakpoints } from '@ui/utils/responsive' import { Th, Thead, TheadSortButton } from '@ui/Table' import Box from '@ui/Box' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import TableHeadRewards from '@main/components/PagePoolList/components/TableHeadRewards' -import { COLUMN_KEYS } from '@main/components/PagePoolList/utils' +import TableHeadRewards from '@/dex/components/PagePoolList/components/TableHeadRewards' +import { COLUMN_KEYS } from '@/dex/components/PagePoolList/utils' type Props = { isLite: boolean diff --git a/apps/main/src/dex/components/PagePoolList/components/TableHeadRewards.tsx b/apps/main/src/dex/components/PagePoolList/components/TableHeadRewards.tsx index 32e218eac..edb67edba 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableHeadRewards.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableHeadRewards.tsx @@ -1,5 +1,5 @@ -import type { PoolListTableLabel } from '@main/components/PagePoolList/types' -import type { SortKey } from '@main/components/PagePoolList/types' +import type { PoolListTableLabel } from '@/dex/components/PagePoolList/types' +import type { SortKey } from '@/dex/components/PagePoolList/types' import { t } from '@lingui/macro' import React from 'react' diff --git a/apps/main/src/dex/components/PagePoolList/components/TableRow.tsx b/apps/main/src/dex/components/PagePoolList/components/TableRow.tsx index 4045a6d2c..fdf8b784e 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableRow.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableRow.tsx @@ -1,24 +1,24 @@ -import type { ColumnKeys, FormValues, SearchParams } from '@main/components/PagePoolList/types' +import type { ColumnKeys, FormValues, SearchParams } from '@/dex/components/PagePoolList/types' import type { CampaignRewardsMapper } from 'ui/src/CampaignRewards/types' import React from 'react' import { t } from '@lingui/macro' import { FunctionComponent, HTMLAttributes, useEffect, useRef, useState } from 'react' -import { COLUMN_KEYS } from '@main/components/PagePoolList/utils' +import { COLUMN_KEYS } from '@/dex/components/PagePoolList/utils' import useIntersectionObserver from '@ui/hooks/useIntersectionObserver' import { Td, Tr, CellInPool } from '@ui/Table' import Box from '@ui/Box' -import CampaignRewardsRow from '@main/components/CampaignRewardsRow' -import PoolLabel from '@main/components/PoolLabel' -import TCellRewards from '@main/components/PagePoolList/components/TableCellRewards' -import TableCellVolume from '@main/components/PagePoolList/components/TableCellVolume' -import TableCellTvl from '@main/components/PagePoolList/components/TableCellTvl' -import TableCellRewardsBase from '@main/components/PagePoolList/components/TableCellRewardsBase' -import TableCellRewardsCrv from '@main/components/PagePoolList/components/TableCellRewardsCrv' -import TableCellRewardsOthers from '@main/components/PagePoolList/components/TableCellRewardsOthers' -import { RewardsApy, PoolData, PoolDataCache, Tvl, Volume } from '@main/types/main.types' +import CampaignRewardsRow from '@/dex/components/CampaignRewardsRow' +import PoolLabel from '@/dex/components/PoolLabel' +import TCellRewards from '@/dex/components/PagePoolList/components/TableCellRewards' +import TableCellVolume from '@/dex/components/PagePoolList/components/TableCellVolume' +import TableCellTvl from '@/dex/components/PagePoolList/components/TableCellTvl' +import TableCellRewardsBase from '@/dex/components/PagePoolList/components/TableCellRewardsBase' +import TableCellRewardsCrv from '@/dex/components/PagePoolList/components/TableCellRewardsCrv' +import TableCellRewardsOthers from '@/dex/components/PagePoolList/components/TableCellRewardsOthers' +import { RewardsApy, PoolData, PoolDataCache, Tvl, Volume } from '@/dex/types/main.types' export type TableRowProps = { index: number diff --git a/apps/main/src/dex/components/PagePoolList/components/TableRowMobile.tsx b/apps/main/src/dex/components/PagePoolList/components/TableRowMobile.tsx index bb6c9cdf7..2e1b28729 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableRowMobile.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableRowMobile.tsx @@ -1,28 +1,28 @@ -import type { PoolListTableLabel } from '@main/components/PagePoolList/types' +import type { PoolListTableLabel } from '@/dex/components/PagePoolList/types' import type { CampaignRewardsMapper } from '@ui/CampaignRewards/types' import { t } from '@lingui/macro' import React, { FunctionComponent, useMemo } from 'react' import styled from 'styled-components' -import { COLUMN_KEYS } from '@main/components/PagePoolList/utils' +import { COLUMN_KEYS } from '@/dex/components/PagePoolList/utils' import { formatNumber } from '@ui/utils' import { CellInPool } from '@ui/Table' -import { LazyItem, type TableRowProps } from '@main/components/PagePoolList/components/TableRow' +import { LazyItem, type TableRowProps } from '@/dex/components/PagePoolList/components/TableRow' import Button from '@ui/Button' import Icon from '@ui/Icon' -import PoolLabel from '@main/components/PoolLabel' -import TCellRewards from '@main/components/PagePoolList/components/TableCellRewards' +import PoolLabel from '@/dex/components/PoolLabel' +import TCellRewards from '@/dex/components/PagePoolList/components/TableCellRewards' import Box from '@ui/Box' import IconButton from '@ui/IconButton' import ListInfoItem, { ListInfoItems } from '@ui/ListInfo' -import TableCellVolume from '@main/components/PagePoolList/components/TableCellVolume' -import TableCellTvl from '@main/components/PagePoolList/components/TableCellTvl' -import TableCellRewardsBase from '@main/components/PagePoolList/components/TableCellRewardsBase' -import TableCellRewardsCrv from '@main/components/PagePoolList/components/TableCellRewardsCrv' -import TableCellRewardsOthers from '@main/components/PagePoolList/components/TableCellRewardsOthers' -import CampaignRewardsRow from '@main/components/CampaignRewardsRow' +import TableCellVolume from '@/dex/components/PagePoolList/components/TableCellVolume' +import TableCellTvl from '@/dex/components/PagePoolList/components/TableCellTvl' +import TableCellRewardsBase from '@/dex/components/PagePoolList/components/TableCellRewardsBase' +import TableCellRewardsCrv from '@/dex/components/PagePoolList/components/TableCellRewardsCrv' +import TableCellRewardsOthers from '@/dex/components/PagePoolList/components/TableCellRewardsOthers' +import CampaignRewardsRow from '@/dex/components/CampaignRewardsRow' import type { ThemeKey } from '@ui-kit/themes/basic-theme' type TableRowMobileProps = Omit & { diff --git a/apps/main/src/dex/components/PagePoolList/components/TableRowNoResult.tsx b/apps/main/src/dex/components/PagePoolList/components/TableRowNoResult.tsx index fc122d36e..5073f48fc 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableRowNoResult.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableRowNoResult.tsx @@ -1,11 +1,11 @@ -import type { SearchParams } from '@main/components/PagePoolList/types' +import type { SearchParams } from '@/dex/components/PagePoolList/types' import { Trans } from '@lingui/macro' import React, { useMemo } from 'react' import styled from 'styled-components' import { shortenAccount } from '@ui/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { Td, Tr } from '@ui/Table' import Box from '@ui/Box' diff --git a/apps/main/src/dex/components/PagePoolList/components/TableSettings/TableCheckboxHideSmallPools.tsx b/apps/main/src/dex/components/PagePoolList/components/TableSettings/TableCheckboxHideSmallPools.tsx index dd82a5761..f6745e03b 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableSettings/TableCheckboxHideSmallPools.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableSettings/TableCheckboxHideSmallPools.tsx @@ -1,10 +1,10 @@ -import type { SearchParams } from '@main/components/PagePoolList/types' +import type { SearchParams } from '@/dex/components/PagePoolList/types' import React from 'react' import { t } from '@lingui/macro' import Checkbox from '@ui/Checkbox' -import { PoolData } from '@main/types/main.types' +import { PoolData } from '@/dex/types/main.types' const TableCheckboxHideSmallPools = ({ searchParams, diff --git a/apps/main/src/dex/components/PagePoolList/components/TableSettings/TableSettings.tsx b/apps/main/src/dex/components/PagePoolList/components/TableSettings/TableSettings.tsx index 90deb2a85..b61e74a3b 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TableSettings/TableSettings.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TableSettings/TableSettings.tsx @@ -1,17 +1,17 @@ -import type { FilterKey, PoolListFilter, PoolListTableLabel, SearchParams } from '@main/components/PagePoolList/types' +import type { FilterKey, PoolListFilter, PoolListTableLabel, SearchParams } from '@/dex/components/PagePoolList/types' import React, { useMemo } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import Box from '@ui/Box' import SearchListInput from '@ui/SearchInput/SearchListInput' import TableButtonFilters from '@ui/TableButtonFilters' import TableButtonFiltersMobile from '@ui/TableButtonFiltersMobile' import TableSortSelect from 'ui/src/TableSort/TableSortSelect' import TableSortSelectMobile from 'ui/src/TableSort/TableSortSelectMobile' -import TableCheckboxHideSmallPools from '@main/components/PagePoolList/components/TableSettings/TableCheckboxHideSmallPools' -import { ChainId, PoolData } from '@main/types/main.types' +import TableCheckboxHideSmallPools from '@/dex/components/PagePoolList/components/TableSettings/TableCheckboxHideSmallPools' +import { ChainId, PoolData } from '@/dex/types/main.types' type Props = { isReady: boolean diff --git a/apps/main/src/dex/components/PagePoolList/components/TooltipBaseApy.tsx b/apps/main/src/dex/components/PagePoolList/components/TooltipBaseApy.tsx index 2001661c7..20405c7d1 100644 --- a/apps/main/src/dex/components/PagePoolList/components/TooltipBaseApy.tsx +++ b/apps/main/src/dex/components/PagePoolList/components/TooltipBaseApy.tsx @@ -5,7 +5,7 @@ import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' import Box from '@ui/Box' -import { RewardBase, PoolData, PoolDataCache } from '@main/types/main.types' +import { RewardBase, PoolData, PoolDataCache } from '@/dex/types/main.types' const TooltipBaseApy = ({ baseApy, diff --git a/apps/main/src/dex/components/PagePoolList/index.tsx b/apps/main/src/dex/components/PagePoolList/index.tsx index 10b62b537..7f96d670c 100644 --- a/apps/main/src/dex/components/PagePoolList/index.tsx +++ b/apps/main/src/dex/components/PagePoolList/index.tsx @@ -1,25 +1,25 @@ -import type { ColumnKeys, PagePoolList, SearchParams } from '@main/components/PagePoolList/types' +import type { ColumnKeys, PagePoolList, SearchParams } from '@/dex/components/PagePoolList/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useMemo, useState } from 'react' import styled from 'styled-components' -import { COLUMN_KEYS } from '@main/components/PagePoolList/utils' -import { DEFAULT_FORM_STATUS, getPoolListActiveKey } from '@main/store/createPoolListSlice' -import { REFRESH_INTERVAL } from '@main/constants' -import usePageVisibleInterval from '@main/hooks/usePageVisibleInterval' -import useStore from '@main/store/useStore' -import { getUserActiveKey } from '@main/store/createUserSlice' -import useCampaignRewardsMapper from '@main/hooks/useCampaignRewardsMapper' +import { COLUMN_KEYS } from '@/dex/components/PagePoolList/utils' +import { DEFAULT_FORM_STATUS, getPoolListActiveKey } from '@/dex/store/createPoolListSlice' +import { REFRESH_INTERVAL } from '@/dex/constants' +import usePageVisibleInterval from '@/dex/hooks/usePageVisibleInterval' +import useStore from '@/dex/store/useStore' +import { getUserActiveKey } from '@/dex/store/createUserSlice' +import useCampaignRewardsMapper from '@/dex/hooks/useCampaignRewardsMapper' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import Table, { Tbody } from '@ui/Table' -import TableHead from '@main/components/PagePoolList/components/TableHead' -import TableHeadMobile from '@main/components/PagePoolList/components/TableHeadMobile' -import TableSettings from '@main/components/PagePoolList/components/TableSettings/TableSettings' -import TableRowNoResult from '@main/components/PagePoolList/components/TableRowNoResult' -import { PoolRow } from '@main/components/PagePoolList/components/PoolRow' -import ConnectWallet from '@main/components/ConnectWallet' +import TableHead from '@/dex/components/PagePoolList/components/TableHead' +import TableHeadMobile from '@/dex/components/PagePoolList/components/TableHeadMobile' +import TableSettings from '@/dex/components/PagePoolList/components/TableSettings/TableSettings' +import TableRowNoResult from '@/dex/components/PagePoolList/components/TableRowNoResult' +import { PoolRow } from '@/dex/components/PagePoolList/components/PoolRow' +import ConnectWallet from '@/dex/components/ConnectWallet' const PoolList = ({ rChainId, diff --git a/apps/main/src/dex/components/PagePoolList/types.ts b/apps/main/src/dex/components/PagePoolList/types.ts index 1e60af330..76286f161 100644 --- a/apps/main/src/dex/components/PagePoolList/types.ts +++ b/apps/main/src/dex/components/PagePoolList/types.ts @@ -1,8 +1,8 @@ import type { Params } from 'react-router' -import { SEARCH_TERM } from '@main/hooks/useSearchTermMapper' -import { COLUMN_KEYS } from '@main/components/PagePoolList/utils' -import { CurveApi, ChainId } from '@main/types/main.types' +import { SEARCH_TERM } from '@/dex/hooks/useSearchTermMapper' +import { COLUMN_KEYS } from '@/dex/components/PagePoolList/utils' +import { CurveApi, ChainId } from '@/dex/types/main.types' export type FormStatus = { error: string diff --git a/apps/main/src/dex/components/PagePoolList/utils.ts b/apps/main/src/dex/components/PagePoolList/utils.ts index 7720dc6a8..28c80e653 100644 --- a/apps/main/src/dex/components/PagePoolList/utils.ts +++ b/apps/main/src/dex/components/PagePoolList/utils.ts @@ -1,5 +1,5 @@ import type { SearchTermsFuseResult } from '@ui-kit/utils' -import type { SearchTermsResult } from '@main/components/PagePoolList/types' +import type { SearchTermsResult } from '@/dex/components/PagePoolList/types' export enum COLUMN_KEYS { 'inPool' = 'inPool', diff --git a/apps/main/src/dex/components/PageRouterSwap/Page.tsx b/apps/main/src/dex/components/PageRouterSwap/Page.tsx index 51e2c5903..b0c054f62 100644 --- a/apps/main/src/dex/components/PageRouterSwap/Page.tsx +++ b/apps/main/src/dex/components/PageRouterSwap/Page.tsx @@ -3,19 +3,19 @@ import { t } from '@lingui/macro' import { useCallback, useEffect, useState } from 'react' import { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom' import styled from 'styled-components' -import { ROUTE } from '@main/constants' +import { ROUTE } from '@/dex/constants' import { breakpoints } from '@ui/utils' -import { getPath } from '@main/utils/utilsRouter' -import { scrollToTop } from '@main/utils' -import usePageOnMount from '@main/hooks/usePageOnMount' -import useStore from '@main/store/useStore' -import useTokensMapper from '@main/hooks/useTokensMapper' -import AdvancedSettings from '@main/components/AdvancedSettings' +import { getPath } from '@/dex/utils/utilsRouter' +import { scrollToTop } from '@/dex/utils' +import usePageOnMount from '@/dex/hooks/usePageOnMount' +import useStore from '@/dex/store/useStore' +import useTokensMapper from '@/dex/hooks/useTokensMapper' +import AdvancedSettings from '@/dex/components/AdvancedSettings' import Box, { BoxHeader } from '@ui/Box' -import DocumentHead from '@main/layout/default/DocumentHead' +import DocumentHead from '@/dex/layout/default/DocumentHead' import IconButton from '@ui/IconButton' -import QuickSwap from '@main/components/PageRouterSwap/index' -import ConnectWallet from '@main/components/ConnectWallet' +import QuickSwap from '@/dex/components/PageRouterSwap/index' +import ConnectWallet from '@/dex/components/ConnectWallet' import { useUserProfileStore } from '@ui-kit/features/user-profile' const Page: NextPage = () => { diff --git a/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoExchangeRate.tsx b/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoExchangeRate.tsx index 72f5ee367..bbf26aa82 100644 --- a/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoExchangeRate.tsx +++ b/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoExchangeRate.tsx @@ -1,4 +1,4 @@ -import type { ExchangeRate } from '@main/components/PageRouterSwap/types' +import type { ExchangeRate } from '@/dex/components/PageRouterSwap/types' import { t } from '@lingui/macro' import styled from 'styled-components' diff --git a/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoTradeRoute.tsx b/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoTradeRoute.tsx index 236f85d37..c31b09e41 100644 --- a/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoTradeRoute.tsx +++ b/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoTradeRoute.tsx @@ -1,14 +1,14 @@ import type { Params } from 'react-router' -import type { Route } from '@main/components/PageRouterSwap/types' +import type { Route } from '@/dex/components/PageRouterSwap/types' import { t } from '@lingui/macro' import styled from 'styled-components' import { RCCircle } from '@ui/images' import Box from '@ui/Box' -import DetailInfoTradeRouteRoute from '@main/components/PageRouterSwap/components/DetailInfoTradeRouteRoute' +import DetailInfoTradeRouteRoute from '@/dex/components/PageRouterSwap/components/DetailInfoTradeRouteRoute' import Loader from '@ui/Loader' -import { TokensNameMapper } from '@main/types/main.types' +import { TokensNameMapper } from '@/dex/types/main.types' const DetailInfoTradeRoute = ({ params, diff --git a/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoTradeRouteRoute.tsx b/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoTradeRouteRoute.tsx index 1692d1b63..c759f92fa 100644 --- a/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoTradeRouteRoute.tsx +++ b/apps/main/src/dex/components/PageRouterSwap/components/DetailInfoTradeRouteRoute.tsx @@ -1,20 +1,20 @@ import type { Params } from 'react-router' -import type { Route } from '@main/components/PageRouterSwap/types' +import type { Route } from '@/dex/components/PageRouterSwap/types' import { useMemo } from 'react' import { Link } from 'react-router-dom' import isUndefined from 'lodash/isUndefined' import styled from 'styled-components' -import { ROUTE } from '@main/constants' -import { getPath } from '@main/utils/utilsRouter' -import { shortenTokenAddress } from '@main/utils' +import { ROUTE } from '@/dex/constants' +import { getPath } from '@/dex/utils/utilsRouter' +import { shortenTokenAddress } from '@/dex/utils' import { ExternalLink } from '@ui/Link' import Icon from '@ui/Icon' import TextEllipsis from '@ui/TextEllipsis' -import useStore from '@main/store/useStore' -import { ChainId, NetworkEnum } from '@main/types/main.types' +import useStore from '@/dex/store/useStore' +import { ChainId, NetworkEnum } from '@/dex/types/main.types' const DetailInfoTradeRouteRoute = ({ params, diff --git a/apps/main/src/dex/components/PageRouterSwap/components/RouterSwapAlerts.tsx b/apps/main/src/dex/components/PageRouterSwap/components/RouterSwapAlerts.tsx index 8bc5a28c8..b714cb70a 100644 --- a/apps/main/src/dex/components/PageRouterSwap/components/RouterSwapAlerts.tsx +++ b/apps/main/src/dex/components/PageRouterSwap/components/RouterSwapAlerts.tsx @@ -1,14 +1,14 @@ -import type { FormStatus, FormValues, RoutesAndOutput, SearchedParams } from '@main/components/PageRouterSwap/types' +import type { FormStatus, FormValues, RoutesAndOutput, SearchedParams } from '@/dex/components/PageRouterSwap/types' import React, { useMemo } from 'react' import { t } from '@lingui/macro' import isNaN from 'lodash/isNaN' import isUndefined from 'lodash/isUndefined' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@main/components/AlertFormError' -import AlertSlippage from '@main/components/AlertSlippage' +import AlertFormError from '@/dex/components/AlertFormError' +import AlertSlippage from '@/dex/components/AlertSlippage' const RouterSwapAlerts = ({ formStatus, diff --git a/apps/main/src/dex/components/PageRouterSwap/components/useSelectToList.tsx b/apps/main/src/dex/components/PageRouterSwap/components/useSelectToList.tsx index 5abc24cc2..88e69af20 100644 --- a/apps/main/src/dex/components/PageRouterSwap/components/useSelectToList.tsx +++ b/apps/main/src/dex/components/PageRouterSwap/components/useSelectToList.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react' -import useStore from '@main/store/useStore' -import { ChainId } from '@main/types/main.types' +import useStore from '@/dex/store/useStore' +import { ChainId } from '@/dex/types/main.types' const useSelectToList = (rChainId: ChainId | '') => { const selectToList = useStore((state) => state.quickSwap.selectToList[rChainId]) diff --git a/apps/main/src/dex/components/PageRouterSwap/index.tsx b/apps/main/src/dex/components/PageRouterSwap/index.tsx index ec209ed3b..499d74710 100644 --- a/apps/main/src/dex/components/PageRouterSwap/index.tsx +++ b/apps/main/src/dex/components/PageRouterSwap/index.tsx @@ -1,40 +1,40 @@ -import type { FormStatus, RoutesAndOutput, StepKey } from '@main/components/PageRouterSwap/types' -import type { FormValues, SearchedParams } from '@main/components/PageRouterSwap/types' +import type { FormStatus, RoutesAndOutput, StepKey } from '@/dex/components/PageRouterSwap/types' +import type { FormValues, SearchedParams } from '@/dex/components/PageRouterSwap/types' import type { Params } from 'react-router' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useEffect, useCallback, useState, useRef, useMemo } from 'react' -import { NETWORK_TOKEN } from '@main/constants' -import { REFRESH_INTERVAL } from '@main/constants' +import { NETWORK_TOKEN } from '@/dex/constants' +import { REFRESH_INTERVAL } from '@/dex/constants' import { formatNumber } from '@ui/utils' import { getActiveStep, getStepStatus } from '@ui/Stepper/helpers' -import { getTokensMapperStr } from '@main/store/createTokensSlice' -import { getTokensObjList } from '@main/store/createQuickSwapSlice' -import { getChainSignerActiveKey } from '@main/utils' -import usePageVisibleInterval from '@main/hooks/usePageVisibleInterval' -import useSelectToList from '@main/components/PageRouterSwap/components/useSelectToList' -import useStore from '@main/store/useStore' -import useTokensNameMapper from '@main/hooks/useTokensNameMapper' +import { getTokensMapperStr } from '@/dex/store/createTokensSlice' +import { getTokensObjList } from '@/dex/store/createQuickSwapSlice' +import { getChainSignerActiveKey } from '@/dex/utils' +import usePageVisibleInterval from '@/dex/hooks/usePageVisibleInterval' +import useSelectToList from '@/dex/components/PageRouterSwap/components/useSelectToList' +import useStore from '@/dex/store/useStore' +import useTokensNameMapper from '@/dex/hooks/useTokensNameMapper' import AlertBox from '@ui/AlertBox' import Box from '@ui/Box' -import ChipInpHelper from '@main/components/ChipInpHelper' +import ChipInpHelper from '@/dex/components/ChipInpHelper' import IconButton from '@ui/IconButton' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import DetailInfoExchangeRate from '@main/components/PageRouterSwap/components/DetailInfoExchangeRate' -import DetailInfoPriceImpact from '@main/components/PageRouterSwap/components/DetailInfoPriceImpact' -import DetailInfoSlippageTolerance from '@main/components/PagePool/components/DetailInfoSlippageTolerance' -import DetailInfoTradeRoute from '@main/components/PageRouterSwap/components/DetailInfoTradeRoute' -import FieldHelperUsdRate from '@main/components/FieldHelperUsdRate' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import DetailInfoExchangeRate from '@/dex/components/PageRouterSwap/components/DetailInfoExchangeRate' +import DetailInfoPriceImpact from '@/dex/components/PageRouterSwap/components/DetailInfoPriceImpact' +import DetailInfoSlippageTolerance from '@/dex/components/PagePool/components/DetailInfoSlippageTolerance' +import DetailInfoTradeRoute from '@/dex/components/PageRouterSwap/components/DetailInfoTradeRoute' +import FieldHelperUsdRate from '@/dex/components/FieldHelperUsdRate' import Icon from '@ui/Icon' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import FormConnectWallet from '@main/components/FormConnectWallet' -import RouterSwapAlerts from '@main/components/PageRouterSwap/components/RouterSwapAlerts' +import FormConnectWallet from '@/dex/components/FormConnectWallet' +import RouterSwapAlerts from '@/dex/components/PageRouterSwap/components/RouterSwapAlerts' import Stepper from '@ui/Stepper' -import TokenComboBox from '@main/components/ComboBoxSelectToken' +import TokenComboBox from '@/dex/components/ComboBoxSelectToken' import TxInfoBar from '@ui/TxInfoBar' -import WarningModal from '@main/components/PagePool/components/WarningModal' +import WarningModal from '@/dex/components/PagePool/components/WarningModal' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { CurveApi, ChainId, Token, TokensMapper } from '@main/types/main.types' +import { CurveApi, ChainId, Token, TokensMapper } from '@/dex/types/main.types' const QuickSwap = ({ pageLoaded, diff --git a/apps/main/src/dex/components/PageRouterSwap/types.ts b/apps/main/src/dex/components/PageRouterSwap/types.ts index c478e3af3..029120ed9 100644 --- a/apps/main/src/dex/components/PageRouterSwap/types.ts +++ b/apps/main/src/dex/components/PageRouterSwap/types.ts @@ -1,5 +1,5 @@ import type { IRouteStep } from '@curvefi/api/lib/interfaces' -import { AlertFormErrorKey } from '@main/components/AlertFormError' +import { AlertFormErrorKey } from '@/dex/components/AlertFormError' export type StepKey = 'APPROVAL' | 'SWAP' diff --git a/apps/main/src/dex/components/PageRouterSwap/utils.ts b/apps/main/src/dex/components/PageRouterSwap/utils.ts index 7d802ee7f..f7be57ec1 100644 --- a/apps/main/src/dex/components/PageRouterSwap/utils.ts +++ b/apps/main/src/dex/components/PageRouterSwap/utils.ts @@ -1,15 +1,15 @@ -import type { FormValues, Route } from '@main/components/PageRouterSwap/types' +import type { FormValues, Route } from '@/dex/components/PageRouterSwap/types' import type { IRouteStep } from '@curvefi/api/lib/interfaces' -import type { FormStatus } from '@main/components/PageRouterSwap/types' +import type { FormStatus } from '@/dex/components/PageRouterSwap/types' import isUndefined from 'lodash/isUndefined' import orderBy from 'lodash/orderBy' import uniq from 'lodash/uniq' -import { NETWORK_TOKEN } from '@main/constants' +import { NETWORK_TOKEN } from '@/dex/constants' import { log, LogStatus } from '@ui-kit/lib' import { weiToEther } from '@ui-kit/utils' -import { Pool, UserBalancesMapper, PoolData, UsdRatesMapper } from '@main/types/main.types' +import { Pool, UserBalancesMapper, PoolData, UsdRatesMapper } from '@/dex/types/main.types' export const DEFAULT_FORM_STATUS: FormStatus = { isApproved: false, diff --git a/apps/main/src/dex/components/PoolLabel.tsx b/apps/main/src/dex/components/PoolLabel.tsx index 19c7f0222..8865da9ff 100644 --- a/apps/main/src/dex/components/PoolLabel.tsx +++ b/apps/main/src/dex/components/PoolLabel.tsx @@ -1,19 +1,19 @@ import React, { useMemo } from 'react' import styled from 'styled-components' -import useStore from '@main/store/useStore' -import usePoolAlert from '@main/hooks/usePoolAlert' -import useTokenAlert from '@main/hooks/useTokenAlert' +import useStore from '@/dex/store/useStore' +import usePoolAlert from '@/dex/hooks/usePoolAlert' +import useTokenAlert from '@/dex/hooks/useTokenAlert' import { Chip } from '@ui/Typography' import AlertBox from '@ui/AlertBox' import AlertTooltipIcon from '@ui/Tooltip/TooltipAlert' import Box from '@ui/Box' -import ChipPool from '@main/components/ChipPool' -import ChipToken from '@main/components/ChipToken' -import TokenIcons from '@main/components/TokenIcons' -import TableCellReferenceAsset from '@main/components/PagePoolList/components/TableCellReferenceAsset' -import { PoolData, PoolDataCache } from '@main/types/main.types' +import ChipPool from '@/dex/components/ChipPool' +import ChipToken from '@/dex/components/ChipToken' +import TokenIcons from '@/dex/components/TokenIcons' +import TableCellReferenceAsset from '@/dex/components/PagePoolList/components/TableCellReferenceAsset' +import { PoolData, PoolDataCache } from '@/dex/types/main.types' type PoolListProps = { quickViewValue?: string | React.ReactNode | null diff --git a/apps/main/src/dex/components/PoolRewardsCrv.tsx b/apps/main/src/dex/components/PoolRewardsCrv.tsx index aca6a4176..cce97e8fa 100644 --- a/apps/main/src/dex/components/PoolRewardsCrv.tsx +++ b/apps/main/src/dex/components/PoolRewardsCrv.tsx @@ -7,8 +7,8 @@ import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' import IconTooltip from '@ui/Tooltip/TooltipIcon' import Icon from '@ui/Icon' -import ChipInactive from '@main/components/ChipInactive' -import { RewardsApy, PoolData, PoolDataCache } from '@main/types/main.types' +import ChipInactive from '@/dex/components/ChipInactive' +import { RewardsApy, PoolData, PoolDataCache } from '@/dex/types/main.types' const PoolRewardsCrv = ({ isHighlight, diff --git a/apps/main/src/dex/components/TokenIcon.tsx b/apps/main/src/dex/components/TokenIcon.tsx index aa08acf42..990846fba 100644 --- a/apps/main/src/dex/components/TokenIcon.tsx +++ b/apps/main/src/dex/components/TokenIcon.tsx @@ -1,5 +1,5 @@ import React from 'react' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import TokenIconComp, { type TokenIconProps } from '@ui/Token/TokenIcon' diff --git a/apps/main/src/dex/components/TokenIcons.tsx b/apps/main/src/dex/components/TokenIcons.tsx index 423ace2a8..a08c17f26 100644 --- a/apps/main/src/dex/components/TokenIcons.tsx +++ b/apps/main/src/dex/components/TokenIcons.tsx @@ -1,6 +1,6 @@ import React from 'react' -import TokenIcon from '@main/components/TokenIcon' +import TokenIcon from '@/dex/components/TokenIcon' import TokensIconComp, { type TokensIconProps } from 'ui/src/Token/TokensIcon' export type Props = Omit diff --git a/apps/main/src/dex/entities/chain.ts b/apps/main/src/dex/entities/chain.ts index a86b9bf5e..fe9063c95 100644 --- a/apps/main/src/dex/entities/chain.ts +++ b/apps/main/src/dex/entities/chain.ts @@ -1,6 +1,6 @@ -import { useCurve } from '@main/entities/curve' -import useStore from '@main/store/useStore' -import { ChainId } from '@main/types/main.types' +import { useCurve } from '@/dex/entities/curve' +import useStore from '@/dex/store/useStore' +import { ChainId } from '@/dex/types/main.types' export const useChainId = () => { const { data: curve } = useCurve() diff --git a/apps/main/src/dex/entities/curve/lib.ts b/apps/main/src/dex/entities/curve/lib.ts index 6b008384b..ab7804a7a 100644 --- a/apps/main/src/dex/entities/curve/lib.ts +++ b/apps/main/src/dex/entities/curve/lib.ts @@ -1,4 +1,4 @@ -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' export const useCurve = () => { const curve = useStore((state) => state.curve) diff --git a/apps/main/src/dex/entities/gauge/api/estimate-gas.ts b/apps/main/src/dex/entities/gauge/api/estimate-gas.ts index a0bccac50..01ae71657 100644 --- a/apps/main/src/dex/entities/gauge/api/estimate-gas.ts +++ b/apps/main/src/dex/entities/gauge/api/estimate-gas.ts @@ -1,6 +1,6 @@ -import type { AddRewardQuery, DepositRewardApproveQuery, DepositRewardQuery } from '@main/entities/gauge/types' +import type { AddRewardQuery, DepositRewardApproveQuery, DepositRewardQuery } from '@/dex/entities/gauge/types' import { BD } from '@ui-kit/utils' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' export const queryEstimateGasDepositRewardApprove = async ({ poolId, diff --git a/apps/main/src/dex/entities/gauge/api/gauge-query.ts b/apps/main/src/dex/entities/gauge/api/gauge-query.ts index de2ff6175..93d4e51b7 100644 --- a/apps/main/src/dex/entities/gauge/api/gauge-query.ts +++ b/apps/main/src/dex/entities/gauge/api/gauge-query.ts @@ -10,10 +10,10 @@ */ import { type Address, zeroAddress } from 'viem' -import { DepositRewardApproveQuery } from '@main/entities/gauge/types' +import { DepositRewardApproveQuery } from '@/dex/entities/gauge/types' import { BD } from '@ui-kit/utils' import { GaugeQuery } from '@ui-kit/lib/model/query' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' export const queryGaugeStatus = async ({ poolId }: GaugeQuery) => { const curve = useStore.getState().curve diff --git a/apps/main/src/dex/entities/gauge/api/rewards-mutate.ts b/apps/main/src/dex/entities/gauge/api/rewards-mutate.ts index 4aa2b465d..3556e63ee 100644 --- a/apps/main/src/dex/entities/gauge/api/rewards-mutate.ts +++ b/apps/main/src/dex/entities/gauge/api/rewards-mutate.ts @@ -9,8 +9,8 @@ * business logic and data fetching. */ -import { AddRewardQuery, DepositRewardApproveQuery, DepositRewardQuery } from '@main/entities/gauge/types' -import useStore from '@main/store/useStore' +import { AddRewardQuery, DepositRewardApproveQuery, DepositRewardQuery } from '@/dex/entities/gauge/types' +import useStore from '@/dex/store/useStore' export const mutateAddRewardToken = async ({ poolId, diff --git a/apps/main/src/dex/entities/gauge/lib/gauge-info.ts b/apps/main/src/dex/entities/gauge/lib/gauge-info.ts index 5ccd76596..f98235112 100644 --- a/apps/main/src/dex/entities/gauge/lib/gauge-info.ts +++ b/apps/main/src/dex/entities/gauge/lib/gauge-info.ts @@ -10,7 +10,7 @@ * allowing components to easily access and manipulate gauge-related data. */ -import * as models from '@main/entities/gauge/model' +import * as models from '@/dex/entities/gauge/model' import { useCombinedQueries } from '@ui-kit/lib/queries' import { GaugeParams } from '@ui-kit/lib/model/query' diff --git a/apps/main/src/dex/entities/gauge/lib/reward-actions.ts b/apps/main/src/dex/entities/gauge/lib/reward-actions.ts index 53a01473e..ec6d00f8b 100644 --- a/apps/main/src/dex/entities/gauge/lib/reward-actions.ts +++ b/apps/main/src/dex/entities/gauge/lib/reward-actions.ts @@ -11,8 +11,8 @@ import { t } from '@lingui/macro' import { useIsMutating, useMutation, UseMutationResult } from '@tanstack/react-query' -import * as models from '@main/entities/gauge/model' -import { gaugeKeys as keys } from '@main/entities/gauge/model' +import * as models from '@/dex/entities/gauge/model' +import { gaugeKeys as keys } from '@/dex/entities/gauge/model' import type { AddRewardMutation, AddRewardParams, @@ -20,11 +20,11 @@ import type { DepositRewardApproveParams, DepositRewardMutation, DepositRewardParams, -} from '@main/entities/gauge/types' +} from '@/dex/entities/gauge/types' import { queryClient } from '@ui-kit/lib/api/query-client' import { GaugeParams } from '@ui-kit/lib/model/query' -import useTokensMapper from '@main/hooks/useTokensMapper' -import useStore from '@main/store/useStore' +import useTokensMapper from '@/dex/hooks/useTokensMapper' +import useStore from '@/dex/store/useStore' export const useAddRewardToken = ({ chainId, diff --git a/apps/main/src/dex/entities/gauge/model/estimate-gas-options.ts b/apps/main/src/dex/entities/gauge/model/estimate-gas-options.ts index 1fcd008a9..6704061c5 100644 --- a/apps/main/src/dex/entities/gauge/model/estimate-gas-options.ts +++ b/apps/main/src/dex/entities/gauge/model/estimate-gas-options.ts @@ -9,8 +9,8 @@ * They encapsulate the data fetching logic, making it easier to manage and reuse across the application. */ -import * as api from '@main/entities/gauge/api' -import type { AddRewardParams, DepositRewardApproveParams, DepositRewardParams } from '@main/entities/gauge/types' +import * as api from '@/dex/entities/gauge/api' +import type { AddRewardParams, DepositRewardApproveParams, DepositRewardParams } from '@/dex/entities/gauge/types' import { queryFactory, rootKeys } from '@ui-kit/lib/model/query' import { gaugeAddRewardValidationSuite, diff --git a/apps/main/src/dex/entities/gauge/model/gauge-validation.ts b/apps/main/src/dex/entities/gauge/model/gauge-validation.ts index 8c5610b3e..84d172f2a 100644 --- a/apps/main/src/dex/entities/gauge/model/gauge-validation.ts +++ b/apps/main/src/dex/entities/gauge/model/gauge-validation.ts @@ -9,9 +9,9 @@ import { tokenIdValidationFn, } from '@ui-kit/lib/validation' import { AddRewardParams, DepositRewardApproveParams, DepositRewardParams } from '../types' -import { TIME_FRAMES } from '@main/constants' -import useStore from '@main/store/useStore' -import { formatNumber } from '@main/utils' +import { TIME_FRAMES } from '@/dex/constants' +import useStore from '@/dex/store/useStore' +import { formatNumber } from '@/dex/utils' export const gaugeAddRewardValidationGroup = ({ distributorId, rewardTokenId }: AddRewardParams) => group('gaugeAddRewardValidationGroup', () => { diff --git a/apps/main/src/dex/entities/gauge/model/mutate-options.ts b/apps/main/src/dex/entities/gauge/model/mutate-options.ts index 4df1e0100..1cda54efc 100644 --- a/apps/main/src/dex/entities/gauge/model/mutate-options.ts +++ b/apps/main/src/dex/entities/gauge/model/mutate-options.ts @@ -10,7 +10,7 @@ * They encapsulate the data fetching logic, making it easier to manage and reuse across the application. */ -import * as api from '@main/entities/gauge/api' +import * as api from '@/dex/entities/gauge/api' import type { AddRewardMutation, AddRewardParams, @@ -18,7 +18,7 @@ import type { DepositRewardApproveParams, DepositRewardMutation, DepositRewardParams, -} from '@main/entities/gauge/types' +} from '@/dex/entities/gauge/types' import { assertValidity } from '@ui-kit/lib/validation' import { GaugeParams } from '@ui-kit/lib/model/query' import { diff --git a/apps/main/src/dex/entities/gauge/model/query-keys.ts b/apps/main/src/dex/entities/gauge/model/query-keys.ts index 7d2f70865..75bc382a7 100644 --- a/apps/main/src/dex/entities/gauge/model/query-keys.ts +++ b/apps/main/src/dex/entities/gauge/model/query-keys.ts @@ -10,7 +10,7 @@ * They play a crucial role in maintaining a predictable and efficient data fetching strategy. */ -import type { AddRewardParams, DepositRewardApproveParams, DepositRewardParams } from '@main/entities/gauge/types' +import type { AddRewardParams, DepositRewardApproveParams, DepositRewardParams } from '@/dex/entities/gauge/types' import { GaugeParams, rootKeys } from '@ui-kit/lib/model/query' export const gaugeKeys = { diff --git a/apps/main/src/dex/entities/signer/lib.ts b/apps/main/src/dex/entities/signer/lib.ts index 7aea9e632..786b66c58 100644 --- a/apps/main/src/dex/entities/signer/lib.ts +++ b/apps/main/src/dex/entities/signer/lib.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react' import type { Address } from 'viem' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' export const useSignerAddress = (): { data: Address | undefined } => { const onboardInstance = useStore((state) => state.wallet.onboard) diff --git a/apps/main/src/dex/entities/token/lib.ts b/apps/main/src/dex/entities/token/lib.ts index 0180ae479..c6a437ec4 100644 --- a/apps/main/src/dex/entities/token/lib.ts +++ b/apps/main/src/dex/entities/token/lib.ts @@ -1,9 +1,9 @@ import { useMemo } from 'react' import type { Address } from 'viem' -import useTokensMapper from '@main/hooks/useTokensMapper' -import useStore from '@main/store/useStore' -import { useChainId } from '@main/entities/chain' -import { Token } from '@main/types/main.types' +import useTokensMapper from '@/dex/hooks/useTokensMapper' +import useStore from '@/dex/store/useStore' +import { useChainId } from '@/dex/entities/chain' +import { Token } from '@/dex/types/main.types' export const useTokens = (addresses: (Address | undefined)[]): { data: (Token | undefined)[] } => { const { data: chainId } = useChainId() diff --git a/apps/main/src/dex/features/add-gauge-reward-token/lib/form-context.ts b/apps/main/src/dex/features/add-gauge-reward-token/lib/form-context.ts index ee4901592..50307efbd 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/lib/form-context.ts +++ b/apps/main/src/dex/features/add-gauge-reward-token/lib/form-context.ts @@ -1,4 +1,4 @@ import { useFormContext } from 'react-hook-form' -import type { AddRewardFormValues } from '@main/features/add-gauge-reward-token/types' +import type { AddRewardFormValues } from '@/dex/features/add-gauge-reward-token/types' export const useAddRewardTokenFormContext = () => useFormContext() diff --git a/apps/main/src/dex/features/add-gauge-reward-token/model/validation-suite.ts b/apps/main/src/dex/features/add-gauge-reward-token/model/validation-suite.ts index f4b9d8025..a72a2e1bc 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/model/validation-suite.ts +++ b/apps/main/src/dex/features/add-gauge-reward-token/model/validation-suite.ts @@ -1,4 +1,4 @@ -import { AddRewardParams, gaugeAddRewardValidationGroup } from '@main/entities/gauge' +import { AddRewardParams, gaugeAddRewardValidationGroup } from '@/dex/entities/gauge' import { createValidationSuite } from '@ui-kit/lib/validation' export const addGaugeRewardTokenValidationSuite = createValidationSuite((data: AddRewardParams) => diff --git a/apps/main/src/dex/features/add-gauge-reward-token/types/index.ts b/apps/main/src/dex/features/add-gauge-reward-token/types/index.ts index 29f5b02d0..46d67efab 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/types/index.ts +++ b/apps/main/src/dex/features/add-gauge-reward-token/types/index.ts @@ -1,5 +1,5 @@ import type { Address } from 'viem' -import { ChainId, PoolData } from '@main/types/main.types' +import { ChainId, PoolData } from '@/dex/types/main.types' export interface ManageGaugeProps { pool: PoolData diff --git a/apps/main/src/dex/features/add-gauge-reward-token/ui/AddRewardToken.tsx b/apps/main/src/dex/features/add-gauge-reward-token/ui/AddRewardToken.tsx index 5e9240120..2a6173ebb 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/ui/AddRewardToken.tsx +++ b/apps/main/src/dex/features/add-gauge-reward-token/ui/AddRewardToken.tsx @@ -3,20 +3,20 @@ import { t } from '@lingui/macro' import React, { useCallback } from 'react' import { FormProvider, useForm } from 'react-hook-form' import { zeroAddress } from 'viem' -import { addGaugeRewardTokenValidationSuite } from '@main/features/add-gauge-reward-token/model' -import type { AddRewardFormValues, AddRewardTokenProps } from '@main/features/add-gauge-reward-token/types' +import { addGaugeRewardTokenValidationSuite } from '@/dex/features/add-gauge-reward-token/model' +import type { AddRewardFormValues, AddRewardTokenProps } from '@/dex/features/add-gauge-reward-token/types' import { DistributorInput, EstimatedGasInfo, FormActions, TokenSelector, -} from '@main/features/add-gauge-reward-token/ui' -import { useAddRewardToken, useGaugeRewardsDistributors, useIsDepositRewardAvailable } from '@main/entities/gauge' -import { useSignerAddress } from '@main/entities/signer' +} from '@/dex/features/add-gauge-reward-token/ui' +import { useAddRewardToken, useGaugeRewardsDistributors, useIsDepositRewardAvailable } from '@/dex/entities/gauge' +import { useSignerAddress } from '@/dex/entities/signer' import { formDefaultOptions } from '@ui-kit/lib/model/form' import { FlexContainer, FormContainer, FormFieldsContainer } from '@ui/styled-containers' -import AlertFormError from '@main/components/AlertFormError' -import useStore from '@main/store/useStore' +import AlertFormError from '@/dex/components/AlertFormError' +import useStore from '@/dex/store/useStore' import { FormErrorsDisplay } from '@ui/FormErrorsDisplay' import TxInfoBar from '@ui/TxInfoBar' diff --git a/apps/main/src/dex/features/add-gauge-reward-token/ui/DistributorInput.tsx b/apps/main/src/dex/features/add-gauge-reward-token/ui/DistributorInput.tsx index d815c4ff9..88d6b7599 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/ui/DistributorInput.tsx +++ b/apps/main/src/dex/features/add-gauge-reward-token/ui/DistributorInput.tsx @@ -3,7 +3,7 @@ import { t } from '@lingui/macro' import React from 'react' import { useFormContext } from 'react-hook-form' import type { Address } from 'viem' -import type { AddRewardFormValues } from '@main/features/add-gauge-reward-token/types' +import type { AddRewardFormValues } from '@/dex/features/add-gauge-reward-token/types' import { FlexItemDistributor, SubTitle } from './styled' export const DistributorInput: React.FC<{ disabled: boolean }> = ({ disabled }) => { diff --git a/apps/main/src/dex/features/add-gauge-reward-token/ui/EstimatedGasInfo.tsx b/apps/main/src/dex/features/add-gauge-reward-token/ui/EstimatedGasInfo.tsx index a8c836635..bca13c679 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/ui/EstimatedGasInfo.tsx +++ b/apps/main/src/dex/features/add-gauge-reward-token/ui/EstimatedGasInfo.tsx @@ -1,8 +1,8 @@ import React from 'react' -import { useAddRewardTokenFormContext } from '@main/features/add-gauge-reward-token/lib' -import { useEstimateGasAddRewardToken } from '@main/entities/gauge' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import { ChainId } from '@main/types/main.types' +import { useAddRewardTokenFormContext } from '@/dex/features/add-gauge-reward-token/lib' +import { useEstimateGasAddRewardToken } from '@/dex/entities/gauge' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import { ChainId } from '@/dex/types/main.types' export const EstimatedGasInfo: React.FC<{ chainId: ChainId; poolId: string }> = ({ chainId, poolId }) => { const { diff --git a/apps/main/src/dex/features/add-gauge-reward-token/ui/FormActions.tsx b/apps/main/src/dex/features/add-gauge-reward-token/ui/FormActions.tsx index 427913bdf..d14e784d4 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/ui/FormActions.tsx +++ b/apps/main/src/dex/features/add-gauge-reward-token/ui/FormActions.tsx @@ -1,9 +1,9 @@ import { t } from '@lingui/macro' import React from 'react' -import { useAddRewardTokenFormContext } from '@main/features/add-gauge-reward-token/lib' -import { StyledButton } from '@main/features/add-gauge-reward-token/ui/styled' -import { useAddRewardTokenIsMutating, useIsDepositRewardAvailable } from '@main/entities/gauge' -import { ChainId } from '@main/types/main.types' +import { useAddRewardTokenFormContext } from '@/dex/features/add-gauge-reward-token/lib' +import { StyledButton } from '@/dex/features/add-gauge-reward-token/ui/styled' +import { useAddRewardTokenIsMutating, useIsDepositRewardAvailable } from '@/dex/entities/gauge' +import { ChainId } from '@/dex/types/main.types' export const FormActions: React.FC<{ chainId: ChainId; poolId: string }> = ({ chainId, poolId }) => { const { diff --git a/apps/main/src/dex/features/add-gauge-reward-token/ui/TokenSelector.tsx b/apps/main/src/dex/features/add-gauge-reward-token/ui/TokenSelector.tsx index df497a388..70bdcbe87 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/ui/TokenSelector.tsx +++ b/apps/main/src/dex/features/add-gauge-reward-token/ui/TokenSelector.tsx @@ -2,13 +2,13 @@ import { t } from '@lingui/macro' import React, { useEffect, useMemo } from 'react' import { useFormContext } from 'react-hook-form' import { type Address, isAddressEqual, zeroAddress } from 'viem' -import type { AddRewardFormValues } from '@main/features/add-gauge-reward-token/types' -import { FlexItemToken, StyledTokenComboBox, SubTitle } from '@main/features/add-gauge-reward-token/ui' -import { useGaugeRewardsDistributors } from '@main/entities/gauge' -import { NETWORK_TOKEN } from '@main/constants' -import useTokensMapper from '@main/hooks/useTokensMapper' -import useStore from '@main/store/useStore' -import { ChainId, Token } from '@main/types/main.types' +import type { AddRewardFormValues } from '@/dex/features/add-gauge-reward-token/types' +import { FlexItemToken, StyledTokenComboBox, SubTitle } from '@/dex/features/add-gauge-reward-token/ui' +import { useGaugeRewardsDistributors } from '@/dex/entities/gauge' +import { NETWORK_TOKEN } from '@/dex/constants' +import useTokensMapper from '@/dex/hooks/useTokensMapper' +import useStore from '@/dex/store/useStore' +import { ChainId, Token } from '@/dex/types/main.types' export const TokenSelector: React.FC<{ chainId: ChainId; poolId: string; disabled: boolean }> = ({ chainId, diff --git a/apps/main/src/dex/features/add-gauge-reward-token/ui/styled.tsx b/apps/main/src/dex/features/add-gauge-reward-token/ui/styled.tsx index 357e4ef28..298025075 100644 --- a/apps/main/src/dex/features/add-gauge-reward-token/ui/styled.tsx +++ b/apps/main/src/dex/features/add-gauge-reward-token/ui/styled.tsx @@ -1,6 +1,6 @@ import Button from '@ui/Button' import styled from 'styled-components' -import TokenComboBox from '@main/components/ComboBoxSelectToken' +import TokenComboBox from '@/dex/components/ComboBoxSelectToken' export const FlexItemToken = styled.div` flex: 0 0 auto; diff --git a/apps/main/src/dex/features/deposit-gauge-reward/model/default-values.ts b/apps/main/src/dex/features/deposit-gauge-reward/model/default-values.ts index 01ee092c0..f4fc65994 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/model/default-values.ts +++ b/apps/main/src/dex/features/deposit-gauge-reward/model/default-values.ts @@ -1,6 +1,6 @@ import { zeroAddress } from 'viem' -import { TIME_FRAMES } from '@main/constants' -import { DepositRewardStep, type DepositRewardFormValues } from '@main/features/deposit-gauge-reward/types' +import { TIME_FRAMES } from '@/dex/constants' +import { DepositRewardStep, type DepositRewardFormValues } from '@/dex/features/deposit-gauge-reward/types' export const DepositRewardDefaultValues: DepositRewardFormValues = { rewardTokenId: zeroAddress, diff --git a/apps/main/src/dex/features/deposit-gauge-reward/model/validation-suite.ts b/apps/main/src/dex/features/deposit-gauge-reward/model/validation-suite.ts index f18b96094..b18504b2a 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/model/validation-suite.ts +++ b/apps/main/src/dex/features/deposit-gauge-reward/model/validation-suite.ts @@ -1,6 +1,6 @@ import { enforce, test } from 'vest' -import { DepositRewardStep, type DepositRewardFormValues } from '@main/features/deposit-gauge-reward/types' -import { gaugeDepositRewardValidationGroup } from '@main/entities/gauge' +import { DepositRewardStep, type DepositRewardFormValues } from '@/dex/features/deposit-gauge-reward/types' +import { gaugeDepositRewardValidationGroup } from '@/dex/entities/gauge' import { createValidationSuite } from '@ui-kit/lib/validation' const depositRewardValidationGroup = (data: DepositRewardFormValues) => { diff --git a/apps/main/src/dex/features/deposit-gauge-reward/ui/ActionsStepper.tsx b/apps/main/src/dex/features/deposit-gauge-reward/ui/ActionsStepper.tsx index 4fc511748..42df3eb5e 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/ui/ActionsStepper.tsx +++ b/apps/main/src/dex/features/deposit-gauge-reward/ui/ActionsStepper.tsx @@ -1,16 +1,16 @@ import { t } from '@lingui/macro' import { FunctionComponent, useCallback, useLayoutEffect, useMemo, useState } from 'react' import { useFormContext } from 'react-hook-form' -import { DepositRewardFormValues, DepositRewardStep } from '@main/features/deposit-gauge-reward/types' -import { StepperContainer } from '@main/features/deposit-gauge-reward/ui' -import { useDepositReward, useDepositRewardApprove, useGaugeDepositRewardIsApproved } from '@main/entities/gauge' -import { REFRESH_INTERVAL } from '@main/constants' -import useStore from '@main/store/useStore' +import { DepositRewardFormValues, DepositRewardStep } from '@/dex/features/deposit-gauge-reward/types' +import { StepperContainer } from '@/dex/features/deposit-gauge-reward/ui' +import { useDepositReward, useDepositRewardApprove, useGaugeDepositRewardIsApproved } from '@/dex/entities/gauge' +import { REFRESH_INTERVAL } from '@/dex/constants' +import useStore from '@/dex/store/useStore' import Stepper from '@ui/Stepper' import { getStepStatus } from '@ui/Stepper/helpers' import type { Step } from '@ui/Stepper/types' import TxInfoBar from '@ui/TxInfoBar' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' type TxInfo = { description: string diff --git a/apps/main/src/dex/features/deposit-gauge-reward/ui/AmountTokenInput.tsx b/apps/main/src/dex/features/deposit-gauge-reward/ui/AmountTokenInput.tsx index 84d834e7c..cf766fe3f 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/ui/AmountTokenInput.tsx +++ b/apps/main/src/dex/features/deposit-gauge-reward/ui/AmountTokenInput.tsx @@ -3,28 +3,28 @@ import { t } from '@lingui/macro' import { useCallback, useMemo, type Key } from 'react' import { useFormContext } from 'react-hook-form' import { Address, isAddressEqual } from 'viem' -import { NETWORK_TOKEN } from '@main/constants' -import useTokensMapper from '@main/hooks/useTokensMapper' -import useStore from '@main/store/useStore' -import { formatNumber } from '@main/utils' -import { DepositRewardStep, type DepositRewardFormValues } from '@main/features/deposit-gauge-reward/types' +import { NETWORK_TOKEN } from '@/dex/constants' +import useTokensMapper from '@/dex/hooks/useTokensMapper' +import useStore from '@/dex/store/useStore' +import { formatNumber } from '@/dex/utils' +import { DepositRewardStep, type DepositRewardFormValues } from '@/dex/features/deposit-gauge-reward/types' import { FlexItemAmount, FlexItemMaxBtn, FlexItemToken, StyledInputProvider, StyledTokenComboBox, -} from '@main/features/deposit-gauge-reward/ui/styled' -import { useImageBaseUrl } from '@main/entities/chain' +} from '@/dex/features/deposit-gauge-reward/ui/styled' +import { useImageBaseUrl } from '@/dex/entities/chain' import { useDepositRewardApproveIsMutating, useDepositRewardIsMutating, useGaugeRewardsDistributors, -} from '@main/entities/gauge' -import { useIsSignerConnected, useSignerAddress, useTokensBalances } from '@main/entities/signer' -import { useTokens } from '@main/entities/token' +} from '@/dex/entities/gauge' +import { useIsSignerConnected, useSignerAddress, useTokensBalances } from '@/dex/entities/signer' +import { useTokens } from '@/dex/entities/token' import { FlexContainer } from '@ui/styled-containers' -import { ChainId, Token } from '@main/types/main.types' +import { ChainId, Token } from '@/dex/types/main.types' export const AmountTokenInput: React.FC<{ chainId: ChainId diff --git a/apps/main/src/dex/features/deposit-gauge-reward/ui/DepositReward.tsx b/apps/main/src/dex/features/deposit-gauge-reward/ui/DepositReward.tsx index 72b3866bb..2fd483184 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/ui/DepositReward.tsx +++ b/apps/main/src/dex/features/deposit-gauge-reward/ui/DepositReward.tsx @@ -1,21 +1,21 @@ import { vestResolver } from '@hookform/resolvers/vest' import { FormProvider, useForm } from 'react-hook-form' -import { DepositRewardDefaultValues, depositRewardValidationSuite } from '@main/features/deposit-gauge-reward/model' -import { DepositRewardFormValues } from '@main/features/deposit-gauge-reward/types' +import { DepositRewardDefaultValues, depositRewardValidationSuite } from '@/dex/features/deposit-gauge-reward/model' +import { DepositRewardFormValues } from '@/dex/features/deposit-gauge-reward/types' import { AmountTokenInput, DepositStepper, EpochInput, GasEstimation, HelperFields, -} from '@main/features/deposit-gauge-reward/ui' -import { useGaugeRewardsDistributors } from '@main/entities/gauge' +} from '@/dex/features/deposit-gauge-reward/ui' +import { useGaugeRewardsDistributors } from '@/dex/entities/gauge' import { formDefaultOptions } from '@ui-kit/lib/model/form' import { BlockSkeleton } from '@ui/skeleton' import { FormContainer, FormFieldsContainer, GroupedFieldsContainer } from '@ui/styled-containers' -import AlertFormError from '@main/components/AlertFormError' +import AlertFormError from '@/dex/components/AlertFormError' import { FormErrorsDisplay } from '@ui/FormErrorsDisplay' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' export const DepositReward: React.FC<{ chainId: ChainId diff --git a/apps/main/src/dex/features/deposit-gauge-reward/ui/EpochInput.tsx b/apps/main/src/dex/features/deposit-gauge-reward/ui/EpochInput.tsx index bd10afdc6..83fb1569e 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/ui/EpochInput.tsx +++ b/apps/main/src/dex/features/deposit-gauge-reward/ui/EpochInput.tsx @@ -1,12 +1,12 @@ import { InputDebounced } from '@ui/InputComp' import { useCallback } from 'react' import { useFormContext } from 'react-hook-form' -import { TIME_FRAMES } from '@main/constants' -import type { DepositRewardFormValues } from '@main/features/deposit-gauge-reward/types' -import { EpochInputWrapper, EpochLabel, StyledInputProvider } from '@main/features/deposit-gauge-reward/ui' -import { useDepositRewardApproveIsMutating, useDepositRewardIsMutating } from '@main/entities/gauge' +import { TIME_FRAMES } from '@/dex/constants' +import type { DepositRewardFormValues } from '@/dex/features/deposit-gauge-reward/types' +import { EpochInputWrapper, EpochLabel, StyledInputProvider } from '@/dex/features/deposit-gauge-reward/ui' +import { useDepositRewardApproveIsMutating, useDepositRewardIsMutating } from '@/dex/entities/gauge' import { FlexContainer } from '@ui/styled-containers' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' export const EpochInput: React.FC<{ chainId: ChainId; poolId: string }> = ({ chainId, poolId }) => { const { setValue, formState, watch } = useFormContext() diff --git a/apps/main/src/dex/features/deposit-gauge-reward/ui/GasEstimation.tsx b/apps/main/src/dex/features/deposit-gauge-reward/ui/GasEstimation.tsx index 90d76e32b..54aebede7 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/ui/GasEstimation.tsx +++ b/apps/main/src/dex/features/deposit-gauge-reward/ui/GasEstimation.tsx @@ -1,10 +1,10 @@ import React from 'react' import { useFormContext } from 'react-hook-form' -import DetailInfoEstGas from '@main/components/DetailInfoEstGas' -import { DepositRewardStep, type DepositRewardFormValues } from '@main/features/deposit-gauge-reward/types' -import { useEstimateGasDepositReward, useEstimateGasDepositRewardApprove } from '@main/entities/gauge' +import DetailInfoEstGas from '@/dex/components/DetailInfoEstGas' +import { DepositRewardStep, type DepositRewardFormValues } from '@/dex/features/deposit-gauge-reward/types' +import { useEstimateGasDepositReward, useEstimateGasDepositRewardApprove } from '@/dex/entities/gauge' import { FlexContainer } from '@ui/styled-containers' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' export const GasEstimation: React.FC<{ chainId: ChainId diff --git a/apps/main/src/dex/features/deposit-gauge-reward/ui/HelperFields.tsx b/apps/main/src/dex/features/deposit-gauge-reward/ui/HelperFields.tsx index 51a84177b..c876f7a99 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/ui/HelperFields.tsx +++ b/apps/main/src/dex/features/deposit-gauge-reward/ui/HelperFields.tsx @@ -1,9 +1,9 @@ import { useFormContext } from 'react-hook-form' -import FieldHelperUsdRate from '@main/components/FieldHelperUsdRate' -import { type DepositRewardFormValues } from '@main/features/deposit-gauge-reward/types' -import { useTokensUSDRates } from '@main/entities/token' +import FieldHelperUsdRate from '@/dex/components/FieldHelperUsdRate' +import { type DepositRewardFormValues } from '@/dex/features/deposit-gauge-reward/types' +import { useTokensUSDRates } from '@/dex/entities/token' import { FlexContainer } from '@ui/styled-containers' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' export const HelperFields: React.FC<{ chainId: ChainId; poolId: string }> = ({ chainId, poolId }) => { const { watch } = useFormContext() diff --git a/apps/main/src/dex/features/deposit-gauge-reward/ui/styled.tsx b/apps/main/src/dex/features/deposit-gauge-reward/ui/styled.tsx index 8f445a55e..ded92772a 100644 --- a/apps/main/src/dex/features/deposit-gauge-reward/ui/styled.tsx +++ b/apps/main/src/dex/features/deposit-gauge-reward/ui/styled.tsx @@ -1,6 +1,6 @@ import InputProvider from '@ui/InputComp' import styled from 'styled-components' -import TokenComboBox from '@main/components/ComboBoxSelectToken' +import TokenComboBox from '@/dex/components/ComboBoxSelectToken' export const StyledInputProvider = styled(InputProvider)` width: 100%; diff --git a/apps/main/src/dex/hooks/useCampaignRewardsMapper.tsx b/apps/main/src/dex/hooks/useCampaignRewardsMapper.tsx index 6a65e739a..3f17152c8 100644 --- a/apps/main/src/dex/hooks/useCampaignRewardsMapper.tsx +++ b/apps/main/src/dex/hooks/useCampaignRewardsMapper.tsx @@ -1,4 +1,4 @@ -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' const useCampaignRewardsMapper = () => useStore((state) => state.campaigns.campaignRewardsMapper) diff --git a/apps/main/src/dex/hooks/useLayoutHeight.ts b/apps/main/src/dex/hooks/useLayoutHeight.ts index bbf0b508a..8fd61f4c3 100644 --- a/apps/main/src/dex/hooks/useLayoutHeight.ts +++ b/apps/main/src/dex/hooks/useLayoutHeight.ts @@ -1,8 +1,8 @@ -import type { LayoutHeight } from '@main/store/createGlobalSlice' +import type { LayoutHeight } from '@/dex/store/createGlobalSlice' import React, { useEffect } from 'react' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' function useLayoutHeight(elementRef: React.RefObject, key: keyof LayoutHeight) { const pageWidth = useStore((state) => state.pageWidth) diff --git a/apps/main/src/dex/hooks/usePageOnMount.ts b/apps/main/src/dex/hooks/usePageOnMount.ts index 9d571c57c..dbefbe90c 100644 --- a/apps/main/src/dex/hooks/usePageOnMount.ts +++ b/apps/main/src/dex/hooks/usePageOnMount.ts @@ -7,15 +7,15 @@ import { ethers } from 'ethers' import { useCallback, useEffect } from 'react' import { getWalletSignerAddress, useConnectWallet, useSetChain, useSetLocale } from '@ui-kit/features/connect-wallet' -import { CONNECT_STAGE, REFRESH_INTERVAL, ROUTE } from '@main/constants' +import { CONNECT_STAGE, REFRESH_INTERVAL, ROUTE } from '@/dex/constants' import { dynamicActivate, updateAppLocale } from '@ui-kit/lib/i18n' -import { getStorageValue, setStorageValue } from '@main/utils/storage' -import { useNetworkFromUrl, useParsedParams } from '@main/utils/utilsRouter' -import { getWalletChainId } from '@main/store/createWalletSlice' -import { initCurveJs } from '@main/utils/utilsCurvejs' -import useStore from '@main/store/useStore' +import { getStorageValue, setStorageValue } from '@/dex/utils/storage' +import { useNetworkFromUrl, useParsedParams } from '@/dex/utils/utilsRouter' +import { getWalletChainId } from '@/dex/store/createWalletSlice' +import { initCurveJs } from '@/dex/utils/utilsCurvejs' +import useStore from '@/dex/store/useStore' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId, PageProps, Wallet } from '@main/types/main.types' +import { ChainId, PageProps, Wallet } from '@/dex/types/main.types' function usePageOnMount(params: Params, location: Location, navigate: NavigateFunction, chainIdNotRequired?: boolean) { const [{ wallet }, connect, disconnect] = useConnectWallet() diff --git a/apps/main/src/dex/hooks/usePoolAlert.tsx b/apps/main/src/dex/hooks/usePoolAlert.tsx index a2b2892aa..8c3d4c277 100644 --- a/apps/main/src/dex/hooks/usePoolAlert.tsx +++ b/apps/main/src/dex/hooks/usePoolAlert.tsx @@ -1,17 +1,17 @@ import React, { useMemo } from 'react' import styled from 'styled-components' -import { ROUTE } from '@main/constants' +import { ROUTE } from '@/dex/constants' import { breakpoints } from '@ui/utils' -import { getPath } from '@main/utils/utilsRouter' -import { shortenTokenAddress } from '@main/utils' -import useStore from '@main/store/useStore' +import { getPath } from '@/dex/utils/utilsRouter' +import { shortenTokenAddress } from '@/dex/utils' +import useStore from '@/dex/store/useStore' import { RCCrossCurve } from '@ui/images' import { ExternalLink, InternalLink } from '@ui/Link' import Box from '@ui/Box' -import PoolAlertCustomMessage from '@main/components/PoolAlertCustomMessage' -import { PoolAlert } from '@main/types/main.types' +import PoolAlertCustomMessage from '@/dex/components/PoolAlertCustomMessage' +import { PoolAlert } from '@/dex/types/main.types' const usePoolAlert = (poolAddress: string | undefined, hasVyperVulnerability: boolean | undefined) => { const params = useStore((state) => state.routerProps?.params) diff --git a/apps/main/src/dex/hooks/usePoolTokensLinksMapper.tsx b/apps/main/src/dex/hooks/usePoolTokensLinksMapper.tsx index f6c0b48de..a9e70d15c 100644 --- a/apps/main/src/dex/hooks/usePoolTokensLinksMapper.tsx +++ b/apps/main/src/dex/hooks/usePoolTokensLinksMapper.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react' -import { ChainId, PoolDataCacheOrApi } from '@main/types/main.types' +import { ChainId, PoolDataCacheOrApi } from '@/dex/types/main.types' import { getAppRoot } from '@ui-kit/shared/routes' enum Pool { diff --git a/apps/main/src/dex/hooks/usePoolTotalStaked.tsx b/apps/main/src/dex/hooks/usePoolTotalStaked.tsx index fb8c49c13..1b6bbcfb0 100644 --- a/apps/main/src/dex/hooks/usePoolTotalStaked.tsx +++ b/apps/main/src/dex/hooks/usePoolTotalStaked.tsx @@ -1,9 +1,9 @@ import { Contract, Interface, JsonRpcProvider } from 'ethers' import { useCallback, useEffect } from 'react' -import { isValidAddress } from '@main/utils' -import useStore from '@main/store/useStore' +import { isValidAddress } from '@/dex/utils' +import useStore from '@/dex/store/useStore' import dayjs from '@ui-kit/lib/dayjs' -import { Provider, PoolDataCacheOrApi } from '@main/types/main.types' +import { Provider, PoolDataCacheOrApi } from '@/dex/types/main.types' const usePoolTotalStaked = (poolDataCacheOrApi: PoolDataCacheOrApi) => { const { address, lpToken, gauge } = poolDataCacheOrApi?.pool ?? {} @@ -24,7 +24,7 @@ const usePoolTotalStaked = (poolDataCacheOrApi: PoolDataCacheOrApi) => { const getContract = useCallback( async (contract: string, address: string, provider: Provider | JsonRpcProvider) => { try { - const abi = await import(`@main/components/PagePool/abis/${contract}.json`).then((module) => module.default.abi) + const abi = await import(`@/dex/components/PagePool/abis/${contract}.json`).then((module) => module.default.abi) const iface = new Interface(abi) return new Contract(address, iface.format(), provider) } catch (error) { diff --git a/apps/main/src/dex/hooks/useSearchTermMapper.tsx b/apps/main/src/dex/hooks/useSearchTermMapper.tsx index b667327bd..3d409bd36 100644 --- a/apps/main/src/dex/hooks/useSearchTermMapper.tsx +++ b/apps/main/src/dex/hooks/useSearchTermMapper.tsx @@ -1,7 +1,7 @@ -import type { SearchTermKey, SearchTermMapper } from '@main/components/PagePoolList/types' +import type { SearchTermKey, SearchTermMapper } from '@/dex/components/PagePoolList/types' import { t } from '@lingui/macro' -import { PoolDataCacheOrApi } from '@main/types/main.types' +import { PoolDataCacheOrApi } from '@/dex/types/main.types' export enum SEARCH_TERM { 'pool.wrappedCoins' = 'pool.wrappedCoins', diff --git a/apps/main/src/dex/hooks/useTokenAlert.tsx b/apps/main/src/dex/hooks/useTokenAlert.tsx index 91880ab50..1d265509d 100644 --- a/apps/main/src/dex/hooks/useTokenAlert.tsx +++ b/apps/main/src/dex/hooks/useTokenAlert.tsx @@ -3,7 +3,7 @@ import React, { useMemo } from 'react' import styled from 'styled-components' import ExternalLink from '@ui/Link/ExternalLink' -import { PoolAlert } from '@main/types/main.types' +import { PoolAlert } from '@/dex/types/main.types' const useTokenAlert = (tokenAddressAll: string[]): PoolAlert | null => useMemo(() => { diff --git a/apps/main/src/dex/hooks/useTokensMapper.tsx b/apps/main/src/dex/hooks/useTokensMapper.tsx index 45b5bf080..9cae8d3ff 100644 --- a/apps/main/src/dex/hooks/useTokensMapper.tsx +++ b/apps/main/src/dex/hooks/useTokensMapper.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react' -import { getTokensMapperStr } from '@main/store/createTokensSlice' -import useStore from '@main/store/useStore' -import { useChainId } from '@main/entities/chain' -import { ChainId } from '@main/types/main.types' +import { getTokensMapperStr } from '@/dex/store/createTokensSlice' +import useStore from '@/dex/store/useStore' +import { useChainId } from '@/dex/entities/chain' +import { ChainId } from '@/dex/types/main.types' const useTokensMapper = (rChainId?: ChainId | number | null) => { const { data: chainId } = useChainId() diff --git a/apps/main/src/dex/hooks/useTokensNameMapper.tsx b/apps/main/src/dex/hooks/useTokensNameMapper.tsx index 778b4c499..86ce7c227 100644 --- a/apps/main/src/dex/hooks/useTokensNameMapper.tsx +++ b/apps/main/src/dex/hooks/useTokensNameMapper.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react' -import useStore from '@main/store/useStore' -import { ChainId } from '@main/types/main.types' +import useStore from '@/dex/store/useStore' +import { ChainId } from '@/dex/types/main.types' const useTokensNameMapper = (rChainId: ChainId | '') => { const tokensNameMapper = useStore((state) => state.tokens.tokensNameMapper[rChainId] ?? {}) diff --git a/apps/main/src/dex/layout/default/Header.tsx b/apps/main/src/dex/layout/default/Header.tsx index 69b559f14..abe17e314 100644 --- a/apps/main/src/dex/layout/default/Header.tsx +++ b/apps/main/src/dex/layout/default/Header.tsx @@ -1,17 +1,17 @@ import React, { useCallback, useMemo, useRef } from 'react' import { t } from '@lingui/macro' import { useLocation, useNavigate } from 'react-router-dom' -import { CONNECT_STAGE, ROUTE } from '@main/constants' +import { CONNECT_STAGE, ROUTE } from '@/dex/constants' import { _parseRouteAndIsActive, FORMAT_OPTIONS, formatNumber, isLoading } from '@ui/utils' -import { useParamsFromUrl, useRestPartialPathname } from '@main/utils/utilsRouter' +import { useParamsFromUrl, useRestPartialPathname } from '@/dex/utils/utilsRouter' import { getWalletSignerAddress, useConnectWallet } from '@ui-kit/features/connect-wallet' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { Header as NewHeader, useHeaderHeight } from '@ui-kit/widgets/Header' import { NavigationSection } from '@ui-kit/widgets/Header/types' -import useLayoutHeight from '@main/hooks/useLayoutHeight' +import useLayoutHeight from '@/dex/hooks/useLayoutHeight' import { APP_LINK } from '@ui-kit/shared/routes' import { GlobalBannerProps } from '@ui/Banner/GlobalBanner' -import { ChainId, Networks } from '@main/types/main.types' +import { ChainId, Networks } from '@/dex/types/main.types' type HeaderProps = { sections: NavigationSection[]; BannerProps: GlobalBannerProps } diff --git a/apps/main/src/dex/layout/default/Settings.tsx b/apps/main/src/dex/layout/default/Settings.tsx index 8156665a5..b2034cf3d 100644 --- a/apps/main/src/dex/layout/default/Settings.tsx +++ b/apps/main/src/dex/layout/default/Settings.tsx @@ -1,4 +1,4 @@ -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import styled, { keyframes } from 'styled-components' import Button from '@ui/Button' diff --git a/apps/main/src/dex/layout/default/index.tsx b/apps/main/src/dex/layout/default/index.tsx index 9651da56d..ec8088d74 100644 --- a/apps/main/src/dex/layout/default/index.tsx +++ b/apps/main/src/dex/layout/default/index.tsx @@ -1,19 +1,19 @@ import React, { useMemo, useRef, useState } from 'react' import styled from 'styled-components' -import { CONNECT_STAGE, ROUTE } from '@main/constants' -import { useNetworkFromUrl } from '@main/utils/utilsRouter' -import { getWalletChainId } from '@main/store/createWalletSlice' +import { CONNECT_STAGE, ROUTE } from '@/dex/constants' +import { useNetworkFromUrl } from '@/dex/utils/utilsRouter' +import { getWalletChainId } from '@/dex/store/createWalletSlice' import { isFailure, isLoading } from '@ui/utils' import { useConnectWallet } from '@ui-kit/features/connect-wallet' -import useLayoutHeight from '@main/hooks/useLayoutHeight' -import useStore from '@main/store/useStore' +import useLayoutHeight from '@/dex/hooks/useLayoutHeight' +import useStore from '@/dex/store/useStore' -import Header from '@main/layout/default/Header' +import Header from '@/dex/layout/default/Header' import { Locale } from '@ui-kit/widgets/Header/types' import { t } from '@lingui/macro' import { Footer } from '@ui-kit/widgets/Footer' -import { layoutHeightKeys } from '@main/store/createGlobalSlice' +import { layoutHeightKeys } from '@/dex/store/createGlobalSlice' import { useUserProfileStore } from '@ui-kit/features/user-profile' const BaseLayout = ({ children }: { children: React.ReactNode }) => { diff --git a/apps/main/src/dex/lib/curvejs.ts b/apps/main/src/dex/lib/curvejs.ts index f5e5b6d67..4a3d14eea 100644 --- a/apps/main/src/dex/lib/curvejs.ts +++ b/apps/main/src/dex/lib/curvejs.ts @@ -1,8 +1,8 @@ import type { DateValue } from '@internationalized/date' -import type { FormType as LockFormType } from '@main/components/PageCrvLocker/types' +import type { FormType as LockFormType } from '@/dex/components/PageCrvLocker/types' import type { IProfit } from '@curvefi/api/lib/interfaces' -import type { ExchangeRate, FormValues, Route, SearchedParams } from '@main/components/PageRouterSwap/types' -import type { FormValues as PoolSwapFormValues } from '@main/components/PagePool/Swap/types' +import type { ExchangeRate, FormValues, Route, SearchedParams } from '@/dex/components/PageRouterSwap/types' +import type { FormValues as PoolSwapFormValues } from '@/dex/components/PagePool/Swap/types' import countBy from 'lodash/countBy' import dayjs from '@ui-kit/lib/dayjs' import chunk from 'lodash/chunk' @@ -16,19 +16,19 @@ import { parseBaseProfit, separateCrvProfit, separateCrvReward, -} from '@main/utils/utilsCurvejs' +} from '@/dex/utils/utilsCurvejs' import { BN } from '@ui/utils' -import { claimButtonsKey } from '@main/components/PageDashboard/components/FormClaimFees' -import { fulfilledValue, getErrorMessage, isValidAddress, shortenTokenAddress } from '@main/utils' -import { httpFetcher } from '@main/lib/utils' +import { claimButtonsKey } from '@/dex/components/PageDashboard/components/FormClaimFees' +import { fulfilledValue, getErrorMessage, isValidAddress, shortenTokenAddress } from '@/dex/utils' +import { httpFetcher } from '@/dex/lib/utils' import { excludeLowExchangeRateCheck, getExchangeRates, getSwapIsLowExchangeRate, _parseRoutesAndOutput, -} from '@main/utils/utilsSwap' +} from '@/dex/utils/utilsSwap' import { log } from '@ui-kit/lib/logging' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { CurveApi, ChainId, @@ -44,7 +44,7 @@ import { PoolData, UsdRatesMapper, EstimatedGas, -} from '@main/types/main.types' +} from '@/dex/types/main.types' const helpers = { fetchCustomGasFees: async (curve: CurveApi) => { diff --git a/apps/main/src/dex/lib/utils.ts b/apps/main/src/dex/lib/utils.ts index c97396f41..c8c74ed21 100644 --- a/apps/main/src/dex/lib/utils.ts +++ b/apps/main/src/dex/lib/utils.ts @@ -1,5 +1,5 @@ import fetch from 'cross-fetch' -import { CurveApi, NetworkConfig } from '@main/types/main.types' +import { CurveApi, NetworkConfig } from '@/dex/types/main.types' export const httpFetcher = (uri: string) => fetch(uri).then((res) => res.json()) diff --git a/apps/main/src/dex/store/createCacheSlice.ts b/apps/main/src/dex/store/createCacheSlice.ts index 4313ebb71..562b0044c 100644 --- a/apps/main/src/dex/store/createCacheSlice.ts +++ b/apps/main/src/dex/store/createCacheSlice.ts @@ -1,8 +1,8 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' -import { sleep } from '@main/utils' -import { ChainId, PoolDataCacheMapper } from '@main/types/main.types' +import { sleep } from '@/dex/utils' +import { ChainId, PoolDataCacheMapper } from '@/dex/types/main.types' type SwapFormValuesCache = { fromAddress: string diff --git a/apps/main/src/dex/store/createCampaignRewardsSlice.ts b/apps/main/src/dex/store/createCampaignRewardsSlice.ts index 434ea476f..f43cdbffa 100644 --- a/apps/main/src/dex/store/createCampaignRewardsSlice.ts +++ b/apps/main/src/dex/store/createCampaignRewardsSlice.ts @@ -1,10 +1,10 @@ -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import type { GetState, SetState } from 'zustand' import { CampaignRewardsItem, CampaignRewardsPool, CampaignRewardsMapper } from 'ui/src/CampaignRewards/types' import produce from 'immer' import campaigns from '@external-rewards' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createCreatePoolSlice.ts b/apps/main/src/dex/store/createCreatePoolSlice.ts index 128b89a1e..1883461bb 100644 --- a/apps/main/src/dex/store/createCreatePoolSlice.ts +++ b/apps/main/src/dex/store/createCreatePoolSlice.ts @@ -5,7 +5,7 @@ import { SwapType, TokenId, TokenState, -} from '@main/components/PageCreatePool/types' +} from '@/dex/components/PageCreatePool/types' import type { ContractTransactionResponse } from 'ethers' import type { GetState, SetState } from 'zustand' @@ -13,7 +13,7 @@ import produce from 'immer' import { BigNumber } from 'bignumber.js' import { t } from '@lingui/macro' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import { CRYPTOSWAP, @@ -27,9 +27,9 @@ import { TOKEN_F, TOKEN_G, TOKEN_H, -} from '@main/components/PageCreatePool/constants' -import { isTricrypto } from '@main/components/PageCreatePool/utils' -import { CurveApi, ChainId } from '@main/types/main.types' +} from '@/dex/components/PageCreatePool/constants' +import { isTricrypto } from '@/dex/components/PageCreatePool/utils' +import { CurveApi, ChainId } from '@/dex/types/main.types' type SliceState = { navigationIndex: number diff --git a/apps/main/src/dex/store/createDashboardSlice.ts b/apps/main/src/dex/store/createDashboardSlice.ts index 4a688f7be..431fadad0 100644 --- a/apps/main/src/dex/store/createDashboardSlice.ts +++ b/apps/main/src/dex/store/createDashboardSlice.ts @@ -1,7 +1,7 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import type { Address } from 'viem' -import type { VecrvInfo } from '@main/components/PageCrvLocker/types' +import type { VecrvInfo } from '@/dex/components/PageCrvLocker/types' import type { IProfit } from '@curvefi/api/lib/interfaces' import type { FormStatus, @@ -11,18 +11,18 @@ import type { WalletPoolData, DashboardDatasMapper, DashboardDataMapper, -} from '@main/components/PageDashboard/types' +} from '@/dex/components/PageDashboard/types' import { PromisePool } from '@supercharge/promise-pool' import { isAddress } from 'viem' import orderBy from 'lodash/orderBy' -import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, SORT_ID } from '@main/components/PageDashboard/utils' -import { claimButtonsKey } from '@main/components/PageDashboard/components/FormClaimFees' -import { fulfilledValue, getErrorMessage, getStorageValue, setStorageValue, sleep } from '@main/utils' +import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, SORT_ID } from '@/dex/components/PageDashboard/utils' +import { claimButtonsKey } from '@/dex/components/PageDashboard/components/FormClaimFees' +import { fulfilledValue, getErrorMessage, getStorageValue, setStorageValue, sleep } from '@/dex/utils' import { shortenAccount } from '@ui/utils' -import curvejsApi from '@main/lib/curvejs' -import { CurveApi, ChainId, PoolDataMapper, FnStepResponse } from '@main/types/main.types' +import curvejsApi from '@/dex/lib/curvejs' +import { CurveApi, ChainId, PoolDataMapper, FnStepResponse } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createDeployGaugeSlice.ts b/apps/main/src/dex/store/createDeployGaugeSlice.ts index 1dde1d5af..7c928af86 100644 --- a/apps/main/src/dex/store/createDeployGaugeSlice.ts +++ b/apps/main/src/dex/store/createDeployGaugeSlice.ts @@ -1,12 +1,12 @@ -import type { DeploymentType, GaugeType } from '@main/components/PageDeployGauge/types' +import type { DeploymentType, GaugeType } from '@/dex/components/PageDeployGauge/types' import type { ContractTransactionResponse } from 'ethers' -import type { PoolType, PoolTypes } from '@main/components/PageDeployGauge/types' +import type { PoolType, PoolTypes } from '@/dex/components/PageDeployGauge/types' import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import produce from 'immer' import { t } from '@lingui/macro' -import { shortenTokenAddress } from '@main/utils' -import { CurveApi, ChainId } from '@main/types/main.types' +import { shortenTokenAddress } from '@/dex/utils' +import { CurveApi, ChainId } from '@/dex/types/main.types' type NetworkWithFactory = { chainId: ChainId diff --git a/apps/main/src/dex/store/createGasSlice.ts b/apps/main/src/dex/store/createGasSlice.ts index 5ebc27e76..8b77e6bfd 100644 --- a/apps/main/src/dex/store/createGasSlice.ts +++ b/apps/main/src/dex/store/createGasSlice.ts @@ -1,12 +1,12 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import cloneDeep from 'lodash/cloneDeep' import { getEthereumCustomFeeDataValues } from '@ui/utils/utilsGas' import { Chain, gweiToWai } from '@ui-kit/utils' -import { httpFetcher } from '@main/lib/utils' +import { httpFetcher } from '@/dex/lib/utils' import { log } from '@ui-kit/lib/logging' -import api from '@main/lib/curvejs' -import { CurveApi, NetworkConfig, Provider, GasInfo } from '@main/types/main.types' +import api from '@/dex/lib/curvejs' +import { CurveApi, NetworkConfig, Provider, GasInfo } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createGlobalSlice.ts b/apps/main/src/dex/store/createGlobalSlice.ts index 0b5d92ebf..5cc35c2c2 100644 --- a/apps/main/src/dex/store/createGlobalSlice.ts +++ b/apps/main/src/dex/store/createGlobalSlice.ts @@ -1,10 +1,10 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import { ConnectState, getPageWidthClassName } from '@ui/utils' import isEqual from 'lodash/isEqual' import produce from 'immer' import { log } from '@ui-kit/lib/logging' -import curvejsApi from '@main/lib/curvejs' +import curvejsApi from '@/dex/lib/curvejs' import { CurveApi, ChainId, @@ -12,7 +12,7 @@ import { PageWidthClassName, RouterProps, Wallet, -} from '@main/types/main.types' +} from '@/dex/types/main.types' export type DefaultStateKeys = keyof typeof DEFAULT_STATE export type SliceKey = keyof State | '' diff --git a/apps/main/src/dex/store/createIntegrationsSlice.ts b/apps/main/src/dex/store/createIntegrationsSlice.ts index 6e101fa20..d6710a03a 100644 --- a/apps/main/src/dex/store/createIntegrationsSlice.ts +++ b/apps/main/src/dex/store/createIntegrationsSlice.ts @@ -1,13 +1,13 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' -import type { FilterKey, FormStatus, FormValues } from '@main/components/PageIntegrations/types' +import type { State } from '@/dex/store/useStore' +import type { FilterKey, FormStatus, FormValues } from '@/dex/components/PageIntegrations/types' import type { IntegrationApp, IntegrationsTags } from '@ui/Integration/types' import Fuse from 'fuse.js' import cloneDeep from 'lodash/cloneDeep' import produce from 'immer' import sortBy from 'lodash/sortBy' -import { httpFetcher } from '@main/lib/utils' -import { ChainId } from '@main/types/main.types' +import { httpFetcher } from '@/dex/lib/utils' +import { ChainId } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createLockedCrvSlice.ts b/apps/main/src/dex/store/createLockedCrvSlice.ts index 8ab34cd7e..21f3d3d9e 100644 --- a/apps/main/src/dex/store/createLockedCrvSlice.ts +++ b/apps/main/src/dex/store/createLockedCrvSlice.ts @@ -1,6 +1,6 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' -import type { FormType, FormEstGas, FormStatus, FormValues, VecrvInfo } from '@main/components/PageCrvLocker/types' +import type { State } from '@/dex/store/useStore' +import type { FormType, FormEstGas, FormStatus, FormValues, VecrvInfo } from '@/dex/components/PageCrvLocker/types' import cloneDeep from 'lodash/cloneDeep' @@ -9,10 +9,10 @@ import { DEFAULT_USER_LOCKED_CRV_INFO, DEFAULT_FORM_STATUS, DEFAULT_FORM_EST_GAS, -} from '@main/components/PageCrvLocker/utils' +} from '@/dex/components/PageCrvLocker/utils' import { formatNumber, shortenAccount } from '@ui/utils' -import curvejsApi from '@main/lib/curvejs' +import curvejsApi from '@/dex/lib/curvejs' import dayjs from '@ui-kit/lib/dayjs' import { CurveApi, @@ -20,7 +20,7 @@ import { FnStepEstGasApprovalResponse, FnStepApproveResponse, FnStepResponse, -} from '@main/types/main.types' +} from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createNetworksSlice.ts b/apps/main/src/dex/store/createNetworksSlice.ts index 5155f381b..359b38f14 100644 --- a/apps/main/src/dex/store/createNetworksSlice.ts +++ b/apps/main/src/dex/store/createNetworksSlice.ts @@ -1,12 +1,12 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import { Chain } from '@ui-kit/utils' -import { DEFAULT_NETWORK_CONFIG } from '@main/constants' +import { DEFAULT_NETWORK_CONFIG } from '@/dex/constants' import { getBaseNetworksConfig, NETWORK_BASE_CONFIG } from '@ui/utils' import type { ChainOption } from '@ui-kit/features/switch-chain' import curve from '@curvefi/api' import sortBy from 'lodash/sortBy' -import { CurveApi, ChainId, NetworkConfig, NetworkAliases, NativeToken, Networks } from '@main/types/main.types' +import { CurveApi, ChainId, NetworkConfig, NetworkAliases, NativeToken, Networks } from '@/dex/types/main.types' import { getAppRoot } from '@ui-kit/shared/routes' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createPoolDepositSlice.ts b/apps/main/src/dex/store/createPoolDepositSlice.ts index 8e05e1fb9..c2daee1e0 100644 --- a/apps/main/src/dex/store/createPoolDepositSlice.ts +++ b/apps/main/src/dex/store/createPoolDepositSlice.ts @@ -1,9 +1,9 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' -import type { Amount } from '@main/components/PagePool/utils' -import type { EstimatedGas as FormEstGas, Slippage } from '@main/components/PagePool/types' -import type { FormLpTokenExpected, LoadMaxAmount } from '@main/components/PagePool/Deposit/types' -import type { FormType, FormStatus, FormValues } from '@main/components/PagePool/Deposit/types' +import type { State } from '@/dex/store/useStore' +import type { Amount } from '@/dex/components/PagePool/utils' +import type { EstimatedGas as FormEstGas, Slippage } from '@/dex/components/PagePool/types' +import type { FormLpTokenExpected, LoadMaxAmount } from '@/dex/components/PagePool/Deposit/types' +import type { FormType, FormStatus, FormValues } from '@/dex/components/PagePool/Deposit/types' import { t } from '@lingui/macro' import cloneDeep from 'lodash/cloneDeep' @@ -12,14 +12,14 @@ import { DEFAULT_FORM_LP_TOKEN_EXPECTED, DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, -} from '@main/components/PagePool/Deposit/utils' -import { DEFAULT_ESTIMATED_GAS, DEFAULT_SLIPPAGE } from '@main/components/PagePool' -import { NETWORK_TOKEN } from '@main/constants' -import { getAmountsError, parseAmountsForAPI } from '@main/components/PagePool/utils' -import { getMaxAmountMinusGas } from '@main/utils/utilsGasPrices' -import { isBonus, isHighSlippage } from '@main/utils' -import { getUserPoolActiveKey } from '@main/store/createUserSlice' -import curvejsApi from '@main/lib/curvejs' +} from '@/dex/components/PagePool/Deposit/utils' +import { DEFAULT_ESTIMATED_GAS, DEFAULT_SLIPPAGE } from '@/dex/components/PagePool' +import { NETWORK_TOKEN } from '@/dex/constants' +import { getAmountsError, parseAmountsForAPI } from '@/dex/components/PagePool/utils' +import { getMaxAmountMinusGas } from '@/dex/utils/utilsGasPrices' +import { isBonus, isHighSlippage } from '@/dex/utils' +import { getUserPoolActiveKey } from '@/dex/store/createUserSlice' +import curvejsApi from '@/dex/lib/curvejs' import { Balances, CurveApi, @@ -29,7 +29,7 @@ import { FnStepEstGasApprovalResponse, FnStepApproveResponse, FnStepResponse, -} from '@main/types/main.types' +} from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createPoolListSlice.ts b/apps/main/src/dex/store/createPoolListSlice.ts index 1506081dc..13294492e 100644 --- a/apps/main/src/dex/store/createPoolListSlice.ts +++ b/apps/main/src/dex/store/createPoolListSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import type { FilterKey, FormStatus, @@ -8,16 +8,16 @@ import type { SearchParams, SearchTermsResult, SortKey, -} from '@main/components/PagePoolList/types' +} from '@/dex/components/PagePoolList/types' import type { CampaignRewardsMapper } from '@ui/CampaignRewards/types' -import type { ValueMapperCached } from '@main/store/createCacheSlice' +import type { ValueMapperCached } from '@/dex/store/createCacheSlice' import chunk from 'lodash/chunk' import orderBy from 'lodash/orderBy' import uniqBy from 'lodash/uniqBy' -import { SEARCH_TERM } from '@main/hooks/useSearchTermMapper' -import { parseSearchTermResults } from '@main/components/PagePoolList/utils' +import { SEARCH_TERM } from '@/dex/hooks/useSearchTermMapper' +import { parseSearchTermResults } from '@/dex/components/PagePoolList/utils' import { groupSearchTerms, searchByText } from '@ui-kit/utils' import { ChainId, @@ -28,7 +28,7 @@ import { TvlMapper, UserPoolListMapper, VolumeMapper, -} from '@main/types/main.types' +} from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createPoolSwapSlice.ts b/apps/main/src/dex/store/createPoolSwapSlice.ts index 1a6502722..2eed67c23 100644 --- a/apps/main/src/dex/store/createPoolSwapSlice.ts +++ b/apps/main/src/dex/store/createPoolSwapSlice.ts @@ -1,8 +1,8 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' -import type { EstimatedGas as FormEstGas } from '@main/components/PagePool/types' -import type { ExchangeOutput, RouterSwapOutput, FormStatus, FormValues } from '@main/components/PagePool/Swap/types' -import type { RoutesAndOutput, RoutesAndOutputModal } from '@main/components/PageRouterSwap/types' +import type { State } from '@/dex/store/useStore' +import type { EstimatedGas as FormEstGas } from '@/dex/components/PagePool/types' +import type { ExchangeOutput, RouterSwapOutput, FormStatus, FormValues } from '@/dex/components/PagePool/Swap/types' +import type { RoutesAndOutput, RoutesAndOutputModal } from '@/dex/components/PageRouterSwap/types' import cloneDeep from 'lodash/cloneDeep' import { Contract, Interface, JsonRpcProvider } from 'ethers' import { @@ -10,11 +10,11 @@ import { DEFAULT_EXCHANGE_OUTPUT, DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, -} from '@main/components/PagePool/Swap/utils' -import { NETWORK_TOKEN } from '@main/constants' -import { getMaxAmountMinusGas } from '@main/utils/utilsGasPrices' -import { getSwapActionModalType } from '@main/utils/utilsSwap' -import curvejsApi from '@main/lib/curvejs' +} from '@/dex/components/PagePool/Swap/utils' +import { NETWORK_TOKEN } from '@/dex/constants' +import { getMaxAmountMinusGas } from '@/dex/utils/utilsGasPrices' +import { getSwapActionModalType } from '@/dex/utils/utilsSwap' +import curvejsApi from '@/dex/lib/curvejs' import { Balances, CurveApi, @@ -25,7 +25,7 @@ import { FnStepEstGasApprovalResponse, FnStepApproveResponse, FnStepResponse, -} from '@main/types/main.types' +} from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE @@ -97,7 +97,7 @@ const createPoolSwapSlice = (set: SetState, get: GetState): PoolSw if (!provider) return false try { - const json = await import('@main/components/PagePool/abis/stored_rates.json').then((module) => module.default) + const json = await import('@/dex/components/PagePool/abis/stored_rates.json').then((module) => module.default) const iface = new Interface(json) const contract = new Contract(pool.address, iface.format(), provider) const storedRates = await contract.stored_rates() diff --git a/apps/main/src/dex/store/createPoolWithdrawSlice.ts b/apps/main/src/dex/store/createPoolWithdrawSlice.ts index 347cd0d27..9035ca648 100644 --- a/apps/main/src/dex/store/createPoolWithdrawSlice.ts +++ b/apps/main/src/dex/store/createPoolWithdrawSlice.ts @@ -1,17 +1,17 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' -import type { Amount } from '@main/components/PagePool/utils' -import type { EstimatedGas as FormEstGas, Slippage } from '@main/components/PagePool/types' -import type { FormStatus, FormType, FormValues } from '@main/components/PagePool/Withdraw/types' -import type { LoadMaxAmount } from '@main/components/PagePool/Deposit/types' +import type { State } from '@/dex/store/useStore' +import type { Amount } from '@/dex/components/PagePool/utils' +import type { EstimatedGas as FormEstGas, Slippage } from '@/dex/components/PagePool/types' +import type { FormStatus, FormType, FormValues } from '@/dex/components/PagePool/Withdraw/types' +import type { LoadMaxAmount } from '@/dex/components/PagePool/Deposit/types' import cloneDeep from 'lodash/cloneDeep' -import curvejsApi from '@main/lib/curvejs' -import { DEFAULT_SLIPPAGE } from '@main/components/PagePool' -import { parseAmountsForAPI } from '@main/components/PagePool/utils' -import { isBonus, isHighSlippage, shortenTokenAddress } from '@main/utils' -import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@main/components/PagePool/Withdraw/utils' +import curvejsApi from '@/dex/lib/curvejs' +import { DEFAULT_SLIPPAGE } from '@/dex/components/PagePool' +import { parseAmountsForAPI } from '@/dex/components/PagePool/utils' +import { isBonus, isHighSlippage, shortenTokenAddress } from '@/dex/utils' +import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@/dex/components/PagePool/Withdraw/utils' import { CurveApi, ChainId, @@ -20,7 +20,7 @@ import { FnStepEstGasApprovalResponse, FnStepApproveResponse, FnStepResponse, -} from '@main/types/main.types' +} from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createPoolsSlice.ts b/apps/main/src/dex/store/createPoolsSlice.ts index b5e546124..be2a8cbbf 100644 --- a/apps/main/src/dex/store/createPoolsSlice.ts +++ b/apps/main/src/dex/store/createPoolsSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import type { FetchingStatus, LpLiquidityEventsApiResponse, @@ -26,11 +26,11 @@ import groupBy from 'lodash/groupBy' import isNaN from 'lodash/isNaN' import pick from 'lodash/pick' -import { INVALID_ADDRESS } from '@main/constants' -import { fulfilledValue, getChainPoolIdActiveKey, getCurvefiUrl } from '@main/utils' +import { INVALID_ADDRESS } from '@/dex/constants' +import { fulfilledValue, getChainPoolIdActiveKey, getCurvefiUrl } from '@/dex/utils' import { log } from '@ui-kit/lib/logging' import { convertToLocaleTimestamp } from '@ui/Chart/utils' -import curvejsApi from '@main/lib/curvejs' +import curvejsApi from '@/dex/lib/curvejs' import { CurveApi, ChainId, @@ -50,7 +50,7 @@ import { PoolDataCacheMapper, TvlMapper, VolumeMapper, -} from '@main/types/main.types' +} from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createQuickSwapSlice.ts b/apps/main/src/dex/store/createQuickSwapSlice.ts index d2aae213e..f49be71df 100644 --- a/apps/main/src/dex/store/createQuickSwapSlice.ts +++ b/apps/main/src/dex/store/createQuickSwapSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import type { FormEstGas, FormStatus, @@ -7,19 +7,19 @@ import type { RoutesAndOutput, RoutesAndOutputModal, SearchedParams, -} from '@main/components/PageRouterSwap/types' +} from '@/dex/components/PageRouterSwap/types' import cloneDeep from 'lodash/cloneDeep' import isEqual from 'lodash/isEqual' import orderBy from 'lodash/orderBy' -import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, sortTokensByGasFees } from '@main/components/PageRouterSwap/utils' -import { NETWORK_TOKEN } from '@main/constants' -import { getMaxAmountMinusGas } from '@main/utils/utilsGasPrices' -import { getSwapActionModalType } from '@main/utils/utilsSwap' -import { getChainSignerActiveKey, sleep } from '@main/utils' -import curvejsApi from '@main/lib/curvejs' -import { CurveApi, TokensMapper, FnStepApproveResponse, FnStepResponse } from '@main/types/main.types' +import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, sortTokensByGasFees } from '@/dex/components/PageRouterSwap/utils' +import { NETWORK_TOKEN } from '@/dex/constants' +import { getMaxAmountMinusGas } from '@/dex/utils/utilsGasPrices' +import { getSwapActionModalType } from '@/dex/utils/utilsSwap' +import { getChainSignerActiveKey, sleep } from '@/dex/utils' +import curvejsApi from '@/dex/lib/curvejs' +import { CurveApi, TokensMapper, FnStepApproveResponse, FnStepResponse } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createSelectTokenSlice.tsx b/apps/main/src/dex/store/createSelectTokenSlice.tsx index 91b146b01..8ce0ef143 100644 --- a/apps/main/src/dex/store/createSelectTokenSlice.tsx +++ b/apps/main/src/dex/store/createSelectTokenSlice.tsx @@ -1,9 +1,9 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import Fuse from 'fuse.js' import cloneDeep from 'lodash/cloneDeep' -import { Token } from '@main/types/main.types' +import { Token } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createTokensSlice.ts b/apps/main/src/dex/store/createTokensSlice.ts index ce27515f5..4cc99a765 100644 --- a/apps/main/src/dex/store/createTokensSlice.ts +++ b/apps/main/src/dex/store/createTokensSlice.ts @@ -1,9 +1,9 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import countBy from 'lodash/countBy' import { log } from '@ui-kit/lib/logging' -import { updateHaveSameTokenNames } from '@main/store/createPoolsSlice' -import { ChainId, NativeToken, Token, TokensMapper, TokensNameMapper, PoolData } from '@main/types/main.types' +import { updateHaveSameTokenNames } from '@/dex/store/createPoolsSlice' +import { ChainId, NativeToken, Token, TokensMapper, TokensNameMapper, PoolData } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createUsdRatesSlice.ts b/apps/main/src/dex/store/createUsdRatesSlice.ts index c395b2581..33525254e 100644 --- a/apps/main/src/dex/store/createUsdRatesSlice.ts +++ b/apps/main/src/dex/store/createUsdRatesSlice.ts @@ -1,10 +1,10 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import cloneDeep from 'lodash/cloneDeep' -import curvejsApi from '@main/lib/curvejs' -import { CurveApi, UsdRatesMapper } from '@main/types/main.types' +import curvejsApi from '@/dex/lib/curvejs' +import { CurveApi, UsdRatesMapper } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createUserBalancesSlice.ts b/apps/main/src/dex/store/createUserBalancesSlice.ts index fd9ab359b..4d6deecef 100644 --- a/apps/main/src/dex/store/createUserBalancesSlice.ts +++ b/apps/main/src/dex/store/createUserBalancesSlice.ts @@ -1,8 +1,8 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import cloneDeep from 'lodash/cloneDeep' -import curvejsApi from '@main/lib/curvejs' -import { CurveApi, UserBalancesMapper } from '@main/types/main.types' +import curvejsApi from '@/dex/lib/curvejs' +import { CurveApi, UserBalancesMapper } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createUserSlice.ts b/apps/main/src/dex/store/createUserSlice.ts index 612db958b..be3390484 100644 --- a/apps/main/src/dex/store/createUserSlice.ts +++ b/apps/main/src/dex/store/createUserSlice.ts @@ -1,13 +1,13 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import { shortenAccount } from '@ui/utils' import { t } from '@lingui/macro' import cloneDeep from 'lodash/cloneDeep' -import { fulfilledValue, isValidAddress } from '@main/utils' -import curvejsApi from '@main/lib/curvejs' -import { Balances, CurveApi, ChainId, UserPoolListMapper } from '@main/types/main.types' +import { fulfilledValue, isValidAddress } from '@/dex/utils' +import curvejsApi from '@/dex/lib/curvejs' +import { Balances, CurveApi, ChainId, UserPoolListMapper } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/createWalletSlice.ts b/apps/main/src/dex/store/createWalletSlice.ts index f062af92d..2b904e6de 100644 --- a/apps/main/src/dex/store/createWalletSlice.ts +++ b/apps/main/src/dex/store/createWalletSlice.ts @@ -1,13 +1,13 @@ import type { CustomNotification, NotificationType } from '@web3-onboard/core/dist/types' import type { GetState, SetState } from 'zustand' import type { OnboardAPI, UpdateNotification } from '@web3-onboard/core' -import type { State } from '@main/store/useStore' +import type { State } from '@/dex/store/useStore' import { BrowserProvider, ethers } from 'ethers' import cloneDeep from 'lodash/cloneDeep' -import { CONNECT_STAGE } from '@main/constants' -import { Provider, Wallet } from '@main/types/main.types' +import { CONNECT_STAGE } from '@/dex/constants' +import { Provider, Wallet } from '@/dex/types/main.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/dex/store/useStore.ts b/apps/main/src/dex/store/useStore.ts index c5b14df47..d59a25bde 100644 --- a/apps/main/src/dex/store/useStore.ts +++ b/apps/main/src/dex/store/useStore.ts @@ -5,28 +5,28 @@ import { type PersistOptions } from 'zustand/middleware/persist' import merge from 'lodash/merge' import debounce from 'lodash/debounce' -import createGlobalSlice, { GlobalSlice } from '@main/store/createGlobalSlice' -import createNetworksSlice, { NetworksSlice } from '@main/store/createNetworksSlice' -import createGasSlice, { GasSlice } from '@main/store/createGasSlice' -import createWalletSlice, { WalletSlice } from '@main/store/createWalletSlice' -import createPoolsSlice, { PoolsSlice } from '@main/store/createPoolsSlice' -import createUserSlice, { UserSlice } from '@main/store/createUserSlice' -import createPoolListSlice, { PoolListSlice } from '@main/store/createPoolListSlice' -import createQuickSwapSlice, { QuickSwapSlice } from '@main/store/createQuickSwapSlice' -import createCacheSlice, { CacheSlice } from '@main/store/createCacheSlice' -import createUserBalancesSlice, { UserBalancesSlice } from '@main/store/createUserBalancesSlice' -import createDashboardSlice, { DashboardSlice } from '@main/store/createDashboardSlice' -import createTokensSlice, { TokensSlice } from '@main/store/createTokensSlice' -import createUsdRatesSlice, { UsdRatesSlice } from '@main/store/createUsdRatesSlice' -import createLockedCrvSlice, { LockedCrvSlice } from '@main/store/createLockedCrvSlice' -import createPoolSwapSlice, { PoolSwapSlice } from '@main/store/createPoolSwapSlice' -import createCreatePoolSlice, { CreatePoolSlice } from '@main/store/createCreatePoolSlice' -import createIntegrationsSlice, { IntegrationsSlice } from '@main/store/createIntegrationsSlice' -import createSelectTokenSlice, { SelectTokenSlice } from '@main/store/createSelectTokenSlice' -import createDeployGaugeSlice, { DeployGaugeSlice } from '@main/store/createDeployGaugeSlice' -import createPoolDepositSlice, { PoolDepositSlice } from '@main/store/createPoolDepositSlice' -import createPoolWithdrawSlice, { PoolWithdrawSlice } from '@main/store/createPoolWithdrawSlice' -import createCampaignRewardsSlice, { CampaignRewardsSlice } from '@main/store/createCampaignRewardsSlice' +import createGlobalSlice, { GlobalSlice } from '@/dex/store/createGlobalSlice' +import createNetworksSlice, { NetworksSlice } from '@/dex/store/createNetworksSlice' +import createGasSlice, { GasSlice } from '@/dex/store/createGasSlice' +import createWalletSlice, { WalletSlice } from '@/dex/store/createWalletSlice' +import createPoolsSlice, { PoolsSlice } from '@/dex/store/createPoolsSlice' +import createUserSlice, { UserSlice } from '@/dex/store/createUserSlice' +import createPoolListSlice, { PoolListSlice } from '@/dex/store/createPoolListSlice' +import createQuickSwapSlice, { QuickSwapSlice } from '@/dex/store/createQuickSwapSlice' +import createCacheSlice, { CacheSlice } from '@/dex/store/createCacheSlice' +import createUserBalancesSlice, { UserBalancesSlice } from '@/dex/store/createUserBalancesSlice' +import createDashboardSlice, { DashboardSlice } from '@/dex/store/createDashboardSlice' +import createTokensSlice, { TokensSlice } from '@/dex/store/createTokensSlice' +import createUsdRatesSlice, { UsdRatesSlice } from '@/dex/store/createUsdRatesSlice' +import createLockedCrvSlice, { LockedCrvSlice } from '@/dex/store/createLockedCrvSlice' +import createPoolSwapSlice, { PoolSwapSlice } from '@/dex/store/createPoolSwapSlice' +import createCreatePoolSlice, { CreatePoolSlice } from '@/dex/store/createCreatePoolSlice' +import createIntegrationsSlice, { IntegrationsSlice } from '@/dex/store/createIntegrationsSlice' +import createSelectTokenSlice, { SelectTokenSlice } from '@/dex/store/createSelectTokenSlice' +import createDeployGaugeSlice, { DeployGaugeSlice } from '@/dex/store/createDeployGaugeSlice' +import createPoolDepositSlice, { PoolDepositSlice } from '@/dex/store/createPoolDepositSlice' +import createPoolWithdrawSlice, { PoolWithdrawSlice } from '@/dex/store/createPoolWithdrawSlice' +import createCampaignRewardsSlice, { CampaignRewardsSlice } from '@/dex/store/createCampaignRewardsSlice' export type State = GlobalSlice & NetworksSlice & diff --git a/apps/main/src/dex/types/main.types.ts b/apps/main/src/dex/types/main.types.ts index f60f7783a..f54afe48f 100644 --- a/apps/main/src/dex/types/main.types.ts +++ b/apps/main/src/dex/types/main.types.ts @@ -1,5 +1,5 @@ import type { IDict, IChainId, INetworkName } from '@curvefi/api/lib/interfaces' -import type { SearchParams as PoolListSearchParams } from '@main/components/PagePoolList/types' +import type { SearchParams as PoolListSearchParams } from '@/dex/components/PagePoolList/types' import type { Location, NavigateFunction, Params } from 'react-router' import type { PoolTemplate } from '@curvefi/api/lib/pools' import type { TooltipProps } from '@ui/Tooltip/types' diff --git a/apps/main/src/dex/utils/index.ts b/apps/main/src/dex/utils/index.ts index c700f43bb..954b19347 100644 --- a/apps/main/src/dex/utils/index.ts +++ b/apps/main/src/dex/utils/index.ts @@ -1,10 +1,10 @@ -import type { AlertFormErrorKey } from '@main/components/AlertFormError' +import type { AlertFormErrorKey } from '@/dex/components/AlertFormError' import numbro from 'numbro' -export { getStorageValue, setStorageValue } from '@main/utils/storage' +export { getStorageValue, setStorageValue } from '@/dex/utils/storage' import { shortenAccount } from '@ui/utils' -import { ChainId } from '@main/types/main.types' +import { ChainId } from '@/dex/types/main.types' // https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#mobile_device_detection export function isMobile() { diff --git a/apps/main/src/dex/utils/utilsCurvejs.ts b/apps/main/src/dex/utils/utilsCurvejs.ts index e305d80e8..39e0a138c 100644 --- a/apps/main/src/dex/utils/utilsCurvejs.ts +++ b/apps/main/src/dex/utils/utilsCurvejs.ts @@ -1,6 +1,6 @@ import cloneDeep from 'lodash/cloneDeep' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { CurveApi, ChainId, Pool, RewardsApy, Wallet } from '@main/types/main.types' +import { CurveApi, ChainId, Pool, RewardsApy, Wallet } from '@/dex/types/main.types' export async function initCurveJs(chainId: ChainId, wallet?: Wallet) { const curveApi = cloneDeep((await import('@curvefi/api')).default) as CurveApi diff --git a/apps/main/src/dex/utils/utilsGasPrices.ts b/apps/main/src/dex/utils/utilsGasPrices.ts index 9d8760452..c99f3ca5b 100644 --- a/apps/main/src/dex/utils/utilsGasPrices.ts +++ b/apps/main/src/dex/utils/utilsGasPrices.ts @@ -1,5 +1,5 @@ import { weiToEther } from '@ui-kit/utils' -import { EstimatedGas } from '@main/types/main.types' +import { EstimatedGas } from '@/dex/types/main.types' export function getMaxAmountMinusGas(estimatedGas: EstimatedGas, gasCost: number, tokenBalance: string) { const parsedEstimatedGas = Array.isArray(estimatedGas) ? estimatedGas[0] + estimatedGas[1] : estimatedGas diff --git a/apps/main/src/dex/utils/utilsRouter.ts b/apps/main/src/dex/utils/utilsRouter.ts index 64eaaee26..764840a5a 100644 --- a/apps/main/src/dex/utils/utilsRouter.ts +++ b/apps/main/src/dex/utils/utilsRouter.ts @@ -1,10 +1,10 @@ import type { Params } from 'react-router' -import { MAIN_ROUTE, ROUTE } from '@main/constants' +import { MAIN_ROUTE, ROUTE } from '@/dex/constants' import { DEFAULT_LOCALES, Locale, parseLocale } from '@ui-kit/lib/i18n' -import useStore from '@main/store/useStore' +import useStore from '@/dex/store/useStore' import { useMemo } from 'react' -import { NetworkEnum, RouterParams } from '@main/types/main.types' +import { NetworkEnum, RouterParams } from '@/dex/types/main.types' export function getPath({ locale, network }: Params, rerouteRoute: string) { const { parsedLocale } = parseLocale(locale) diff --git a/apps/main/src/dex/utils/utilsSwap.ts b/apps/main/src/dex/utils/utilsSwap.ts index e85ba7400..4b9585c61 100644 --- a/apps/main/src/dex/utils/utilsSwap.ts +++ b/apps/main/src/dex/utils/utilsSwap.ts @@ -1,11 +1,11 @@ -import type { Route } from '@main/components/PageRouterSwap/types' +import type { Route } from '@/dex/components/PageRouterSwap/types' import type { IRoute } from '@curvefi/api/lib/interfaces' import { t } from '@lingui/macro' import BigNumber from 'bignumber.js' -import { parseRouterRoutes } from '@main/components/PageRouterSwap/utils' -import { CurveApi, PoolData } from '@main/types/main.types' +import { parseRouterRoutes } from '@/dex/components/PageRouterSwap/utils' +import { CurveApi, PoolData } from '@/dex/types/main.types' const LOW_EXCHANGE_RATE = 0.98 diff --git a/apps/main/src/dex/widgets/manage-gauge/ui/ManageGauge.tsx b/apps/main/src/dex/widgets/manage-gauge/ui/ManageGauge.tsx index fa245c70c..cae018e6f 100644 --- a/apps/main/src/dex/widgets/manage-gauge/ui/ManageGauge.tsx +++ b/apps/main/src/dex/widgets/manage-gauge/ui/ManageGauge.tsx @@ -2,12 +2,12 @@ import { t } from '@lingui/macro' import TabSlider, { Tab } from '@ui/TabSlider/TabSlider' import { useCallback, useMemo, useState } from 'react' import { isAddressEqual, type Address } from 'viem' -import type { TabValue } from '@main/widgets/manage-gauge/types' -import AddRewardToken from '@main/features/add-gauge-reward-token' -import DepositReward from '@main/features/deposit-gauge-reward' -import { useGaugeManager, useGaugeRewardsDistributors } from '@main/entities/gauge' -import { useSignerAddress } from '@main/entities/signer' -import { ChainId } from '@main/types/main.types' +import type { TabValue } from '@/dex/widgets/manage-gauge/types' +import AddRewardToken from '@/dex/features/add-gauge-reward-token' +import DepositReward from '@/dex/features/deposit-gauge-reward' +import { useGaugeManager, useGaugeRewardsDistributors } from '@/dex/entities/gauge' +import { useSignerAddress } from '@/dex/entities/signer' +import { ChainId } from '@/dex/types/main.types' const ManageGauge: React.FC<{ poolId: string; chainId: ChainId }> = ({ poolId, chainId }) => { const sliderTabs: Tab[] = [ diff --git a/apps/main/src/lend/components/AdvancedSettings.tsx b/apps/main/src/lend/components/AdvancedSettings.tsx index bbabb77d3..c03f702a4 100644 --- a/apps/main/src/lend/components/AdvancedSettings.tsx +++ b/apps/main/src/lend/components/AdvancedSettings.tsx @@ -5,9 +5,9 @@ import { t } from '@lingui/macro' import React, { useEffect, useState } from 'react' import styled from 'styled-components' -import { delayAction } from '@lend/utils/helpers' +import { delayAction } from '@/lend/utils/helpers' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { Chip } from '@ui/Typography' import { Radio, RadioGroup } from '@ui/Radio' diff --git a/apps/main/src/lend/components/AlertFormWarning.tsx b/apps/main/src/lend/components/AlertFormWarning.tsx index d7a396880..030a553b8 100644 --- a/apps/main/src/lend/components/AlertFormWarning.tsx +++ b/apps/main/src/lend/components/AlertFormWarning.tsx @@ -4,7 +4,7 @@ import { t } from '@lingui/macro' import React, { useMemo } from 'react' import AlertBox from '@ui/AlertBox' -import { AlertType } from '@lend/types/lend.types' +import { AlertType } from '@/lend/types/lend.types' export enum FormWarning { // loan deleverage diff --git a/apps/main/src/lend/components/AlertLoanSummary/components/SummaryChange.tsx b/apps/main/src/lend/components/AlertLoanSummary/components/SummaryChange.tsx index 6ca6d2545..6cce4ff0b 100644 --- a/apps/main/src/lend/components/AlertLoanSummary/components/SummaryChange.tsx +++ b/apps/main/src/lend/components/AlertLoanSummary/components/SummaryChange.tsx @@ -1,12 +1,12 @@ -import type { SummaryProps } from '@lend/components/AlertLoanSummary/types' +import type { SummaryProps } from '@/lend/components/AlertLoanSummary/types' import { t } from '@lingui/macro' import React from 'react' -import { format } from '@lend/components/AlertLoanSummary/utils' +import { format } from '@/lend/components/AlertLoanSummary/utils' import Icon from '@ui/Icon' -import Item from '@lend/components/AlertLoanSummary/components/Item' +import Item from '@/lend/components/AlertLoanSummary/components/Item' const SummaryChange = ({ title, diff --git a/apps/main/src/lend/components/AlertLoanSummary/components/SummaryCreate.tsx b/apps/main/src/lend/components/AlertLoanSummary/components/SummaryCreate.tsx index 1dc4049a9..a6b924fc7 100644 --- a/apps/main/src/lend/components/AlertLoanSummary/components/SummaryCreate.tsx +++ b/apps/main/src/lend/components/AlertLoanSummary/components/SummaryCreate.tsx @@ -1,11 +1,11 @@ -import type { SummaryProps } from '@lend/components/AlertLoanSummary/types' +import type { SummaryProps } from '@/lend/components/AlertLoanSummary/types' import React from 'react' import { t } from '@lingui/macro' -import { format } from '@lend/components/AlertLoanSummary/utils' +import { format } from '@/lend/components/AlertLoanSummary/utils' -import Item from '@lend/components/AlertLoanSummary/components/Item' +import Item from '@/lend/components/AlertLoanSummary/components/Item' const SummaryCreate = ({ title, diff --git a/apps/main/src/lend/components/AlertLoanSummary/components/SummaryFull.tsx b/apps/main/src/lend/components/AlertLoanSummary/components/SummaryFull.tsx index b613ac170..fcbf37d27 100644 --- a/apps/main/src/lend/components/AlertLoanSummary/components/SummaryFull.tsx +++ b/apps/main/src/lend/components/AlertLoanSummary/components/SummaryFull.tsx @@ -1,11 +1,11 @@ -import type { SummaryProps } from '@lend/components/AlertLoanSummary/types' +import type { SummaryProps } from '@/lend/components/AlertLoanSummary/types' import React, { useMemo } from 'react' import { t } from '@lingui/macro' -import { format } from '@lend/components/AlertLoanSummary/utils' +import { format } from '@/lend/components/AlertLoanSummary/utils' -import Item from '@lend/components/AlertLoanSummary/components/Item' +import Item from '@/lend/components/AlertLoanSummary/components/Item' const SummaryFull = ({ title, diff --git a/apps/main/src/lend/components/AlertLoanSummary/components/SummaryPartial.tsx b/apps/main/src/lend/components/AlertLoanSummary/components/SummaryPartial.tsx index d5e8e265c..c720c1dc3 100644 --- a/apps/main/src/lend/components/AlertLoanSummary/components/SummaryPartial.tsx +++ b/apps/main/src/lend/components/AlertLoanSummary/components/SummaryPartial.tsx @@ -1,11 +1,11 @@ -import type { SummaryProps } from '@lend/components/AlertLoanSummary/types' +import type { SummaryProps } from '@/lend/components/AlertLoanSummary/types' import React from 'react' import { t } from '@lingui/macro' -import { format } from '@lend/components/AlertLoanSummary/utils' +import { format } from '@/lend/components/AlertLoanSummary/utils' -import Item from '@lend/components/AlertLoanSummary/components/Item' +import Item from '@/lend/components/AlertLoanSummary/components/Item' const SummaryPartial = ({ title, diff --git a/apps/main/src/lend/components/AlertLoanSummary/components/SummarySelfLiquidate.tsx b/apps/main/src/lend/components/AlertLoanSummary/components/SummarySelfLiquidate.tsx index 36da97c74..669bf4def 100644 --- a/apps/main/src/lend/components/AlertLoanSummary/components/SummarySelfLiquidate.tsx +++ b/apps/main/src/lend/components/AlertLoanSummary/components/SummarySelfLiquidate.tsx @@ -1,12 +1,12 @@ -import type { SummaryProps } from '@lend/components/AlertLoanSummary/types' +import type { SummaryProps } from '@/lend/components/AlertLoanSummary/types' import { t } from '@lingui/macro' import React, { useMemo } from 'react' import { isGreaterThan, minus, getDecimalLength, formatUnits } from '@ui-kit/utils' -import { format } from '@lend/components/AlertLoanSummary/utils' +import { format } from '@/lend/components/AlertLoanSummary/utils' -import Item from '@lend/components/AlertLoanSummary/components/Item' +import Item from '@/lend/components/AlertLoanSummary/components/Item' const SummarySelfLiquidate = ({ pendingMessage, diff --git a/apps/main/src/lend/components/AlertLoanSummary/index.tsx b/apps/main/src/lend/components/AlertLoanSummary/index.tsx index 48865743d..96083f2fe 100644 --- a/apps/main/src/lend/components/AlertLoanSummary/index.tsx +++ b/apps/main/src/lend/components/AlertLoanSummary/index.tsx @@ -1,14 +1,14 @@ -import type { AlertSummaryProps } from '@lend/components/AlertLoanSummary/types' +import type { AlertSummaryProps } from '@/lend/components/AlertLoanSummary/types' import { t } from '@lingui/macro' import styled from 'styled-components' import Box from '@ui/Box' -import SummaryCreate from '@lend/components/AlertLoanSummary/components/SummaryCreate' -import SummaryFull from '@lend/components/AlertLoanSummary/components/SummaryFull' -import SummaryPartial from '@lend/components/AlertLoanSummary/components/SummaryPartial' -import SummarySelfLiquidate from '@lend/components/AlertLoanSummary/components/SummarySelfLiquidate' -import SummaryChange from '@lend/components/AlertLoanSummary/components/SummaryChange' +import SummaryCreate from '@/lend/components/AlertLoanSummary/components/SummaryCreate' +import SummaryFull from '@/lend/components/AlertLoanSummary/components/SummaryFull' +import SummaryPartial from '@/lend/components/AlertLoanSummary/components/SummaryPartial' +import SummarySelfLiquidate from '@/lend/components/AlertLoanSummary/components/SummarySelfLiquidate' +import SummaryChange from '@/lend/components/AlertLoanSummary/components/SummaryChange' const AlertLoanSummary = ({ market, type, ...props }: AlertSummaryProps) => { const { symbol: collateralSymbol = '' } = market?.collateral_token ?? {} diff --git a/apps/main/src/lend/components/AlertLoanSummary/types.ts b/apps/main/src/lend/components/AlertLoanSummary/types.ts index 49692ff26..70f93df06 100644 --- a/apps/main/src/lend/components/AlertLoanSummary/types.ts +++ b/apps/main/src/lend/components/AlertLoanSummary/types.ts @@ -1,5 +1,5 @@ import React from 'react' -import { PageContentProps, UserLoanState, UserMarketBalances } from '@lend/types/lend.types' +import { PageContentProps, UserLoanState, UserMarketBalances } from '@/lend/types/lend.types' export type AlertSummaryProps = Pick & { pendingMessage: React.ReactNode diff --git a/apps/main/src/lend/components/AlertNoLoanFound.tsx b/apps/main/src/lend/components/AlertNoLoanFound.tsx index e5b9ffb7c..cff7a894a 100644 --- a/apps/main/src/lend/components/AlertNoLoanFound.tsx +++ b/apps/main/src/lend/components/AlertNoLoanFound.tsx @@ -5,8 +5,8 @@ import { t } from '@lingui/macro' import { useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' -import { getLoanCreatePathname } from '@lend/utils/utilsRouter' -import useStore from '@lend/store/useStore' +import { getLoanCreatePathname } from '@/lend/utils/utilsRouter' +import useStore from '@/lend/store/useStore' import AlertBox from '@ui/AlertBox' import Button from '@ui/Button' diff --git a/apps/main/src/lend/components/AlertNoVaultSharesFound.tsx b/apps/main/src/lend/components/AlertNoVaultSharesFound.tsx index 6ae1af743..10aa17f49 100644 --- a/apps/main/src/lend/components/AlertNoVaultSharesFound.tsx +++ b/apps/main/src/lend/components/AlertNoVaultSharesFound.tsx @@ -3,16 +3,16 @@ import { t } from '@lingui/macro' import { useParams } from 'react-router-dom' import styled from 'styled-components' -import { getVaultPathname } from '@lend/utils/utilsRouter' -import useStore from '@lend/store/useStore' +import { getVaultPathname } from '@/lend/utils/utilsRouter' +import useStore from '@/lend/store/useStore' -import { ContentWrapper } from '@lend/components/DetailsMarket/styles' +import { ContentWrapper } from '@/lend/components/DetailsMarket/styles' import AlertBox from '@ui/AlertBox' import InternalLink from '@ui/Link/InternalLink' import SpinnerWrapper from '@ui/Spinner/SpinnerWrapper' import Spinner from '@ui/Spinner' import TextCaption from '@ui/TextCaption' -import { PageContentProps } from '@lend/types/lend.types' +import { PageContentProps } from '@/lend/types/lend.types' const AlertNoVaultSharesFound = ({ rOwmId, hideLink, userActiveKey }: PageContentProps & { hideLink?: boolean }) => { const params = useParams() diff --git a/apps/main/src/lend/components/CampaignRewardsBanner.tsx b/apps/main/src/lend/components/CampaignRewardsBanner.tsx index f7c829b0e..f11da4485 100644 --- a/apps/main/src/lend/components/CampaignRewardsBanner.tsx +++ b/apps/main/src/lend/components/CampaignRewardsBanner.tsx @@ -1,6 +1,6 @@ import { t } from '@lingui/macro' -import useCampaignRewardsMapper from '@lend/hooks/useCampaignRewardsMapper' +import useCampaignRewardsMapper from '@/lend/hooks/useCampaignRewardsMapper' import CampaignBannerComp from 'ui/src/CampaignRewards/CampaignBannerComp' diff --git a/apps/main/src/lend/components/ChartBandBalances/ChartBandBalancesSettings.tsx b/apps/main/src/lend/components/ChartBandBalances/ChartBandBalancesSettings.tsx index 18e7b2ff4..77d7ae721 100644 --- a/apps/main/src/lend/components/ChartBandBalances/ChartBandBalancesSettings.tsx +++ b/apps/main/src/lend/components/ChartBandBalances/ChartBandBalancesSettings.tsx @@ -1,6 +1,6 @@ import React from 'react' -import ChartBandBalancesSettingsContent from '@lend/components/ChartBandBalances/ChartBandBalancesSettingsContent' +import ChartBandBalancesSettingsContent from '@/lend/components/ChartBandBalances/ChartBandBalancesSettingsContent' import Icon from '@ui/Icon' import Popover, { Popover2Dialog } from '@ui/Popover2' diff --git a/apps/main/src/lend/components/ChartBandBalances/ChartBandBalancesSettingsContent.tsx b/apps/main/src/lend/components/ChartBandBalances/ChartBandBalancesSettingsContent.tsx index 9acc51cbb..098c1b874 100644 --- a/apps/main/src/lend/components/ChartBandBalances/ChartBandBalancesSettingsContent.tsx +++ b/apps/main/src/lend/components/ChartBandBalances/ChartBandBalancesSettingsContent.tsx @@ -3,7 +3,7 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Button from '@ui/Button' import TextCaption from '@ui/TextCaption' diff --git a/apps/main/src/lend/components/ChartBandBalances/index.tsx b/apps/main/src/lend/components/ChartBandBalances/index.tsx index c7764565e..dd5e7daff 100644 --- a/apps/main/src/lend/components/ChartBandBalances/index.tsx +++ b/apps/main/src/lend/components/ChartBandBalances/index.tsx @@ -1,4 +1,4 @@ -import type { BrushStartEndIndex } from '@lend/components/ChartBandBalances/types' +import type { BrushStartEndIndex } from '@/lend/components/ChartBandBalances/types' import { t } from '@lingui/macro' import { @@ -19,15 +19,15 @@ import React, { useMemo } from 'react' import styled from 'styled-components' import { BN, formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import AlertBox from '@ui/AlertBox' import Box from '@ui/Box' -import ChartBandBalancesSettings from '@lend/components/ChartBandBalances/ChartBandBalancesSettings' -import ChartTooltip, { TipContent, TipIcon, TipTitle } from '@lend/components/ChartTooltip' +import ChartBandBalancesSettings from '@/lend/components/ChartBandBalances/ChartBandBalancesSettings' +import ChartTooltip, { TipContent, TipIcon, TipTitle } from '@/lend/components/ChartTooltip' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import TextCaption from '@ui/TextCaption' -import { PageContentProps, ParsedBandsBalances } from '@lend/types/lend.types' +import { PageContentProps, ParsedBandsBalances } from '@/lend/types/lend.types' const ChartBandBalances = ({ rChainId, diff --git a/apps/main/src/lend/components/ChartLiquidationRange/index.tsx b/apps/main/src/lend/components/ChartLiquidationRange/index.tsx index 12cbcc231..ef3894787 100644 --- a/apps/main/src/lend/components/ChartLiquidationRange/index.tsx +++ b/apps/main/src/lend/components/ChartLiquidationRange/index.tsx @@ -16,9 +16,9 @@ import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import ChartTooltip, { TipContent, TipIcon, TipTitle } from '@lend/components/ChartTooltip' +import ChartTooltip, { TipContent, TipIcon, TipTitle } from '@/lend/components/ChartTooltip' import type { ThemeKey } from '@ui-kit/themes/basic-theme' -import { HeathColorKey } from '@lend/types/lend.types' +import { HeathColorKey } from '@/lend/types/lend.types' interface Props { data: { name: string; curr: number[]; new: number[]; oraclePrice: string; oraclePriceBand: number | null }[] diff --git a/apps/main/src/lend/components/ChartOhlcWrapper/LiquidityData.tsx b/apps/main/src/lend/components/ChartOhlcWrapper/LiquidityData.tsx index 32304d177..b1eb4021c 100644 --- a/apps/main/src/lend/components/ChartOhlcWrapper/LiquidityData.tsx +++ b/apps/main/src/lend/components/ChartOhlcWrapper/LiquidityData.tsx @@ -3,12 +3,12 @@ import { LiquidityDataProps } from './types' import styled from 'styled-components' import { t } from '@lingui/macro' -import networks from '@lend/networks' +import networks from '@/lend/networks' import { formatNumber, getFractionDigitsOptions } from '@ui/utils' -import { convertFullTime, convertTime, convertTimeAgo } from '@lend/components/ChartOhlcWrapper/utils' +import { convertFullTime, convertTime, convertTimeAgo } from '@/lend/components/ChartOhlcWrapper/utils' import Box from '@ui/Box' -import TokenIcon from '@lend/components/TokenIcon' +import TokenIcon from '@/lend/components/TokenIcon' import { Chip } from '@ui/Typography' import Tooltip from '@ui/Tooltip' diff --git a/apps/main/src/lend/components/ChartOhlcWrapper/PoolActivity.tsx b/apps/main/src/lend/components/ChartOhlcWrapper/PoolActivity.tsx index 1b2587c68..2d1a9aa19 100644 --- a/apps/main/src/lend/components/ChartOhlcWrapper/PoolActivity.tsx +++ b/apps/main/src/lend/components/ChartOhlcWrapper/PoolActivity.tsx @@ -4,13 +4,13 @@ import { useEffect, useState } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import Button from '@ui/Button/Button' import Icon from '@ui/Icon' -import TradesData from '@lend/components/ChartOhlcWrapper/TradesData' -import LiquidityData from '@lend/components/ChartOhlcWrapper/LiquidityData' +import TradesData from '@/lend/components/ChartOhlcWrapper/TradesData' +import LiquidityData from '@/lend/components/ChartOhlcWrapper/LiquidityData' const PoolActivity: React.FC = ({ chainId, poolAddress, coins }) => { const { diff --git a/apps/main/src/lend/components/ChartOhlcWrapper/TradesData.tsx b/apps/main/src/lend/components/ChartOhlcWrapper/TradesData.tsx index aee30320d..84a216a44 100644 --- a/apps/main/src/lend/components/ChartOhlcWrapper/TradesData.tsx +++ b/apps/main/src/lend/components/ChartOhlcWrapper/TradesData.tsx @@ -2,12 +2,12 @@ import { TradesDataProps } from './types' import styled from 'styled-components' -import networks from '@lend/networks' +import networks from '@/lend/networks' import { formatNumber, getFractionDigitsOptions } from '@ui/utils' -import { convertFullTime, convertTime, convertTimeAgo } from '@lend/components/ChartOhlcWrapper/utils' +import { convertFullTime, convertTime, convertTimeAgo } from '@/lend/components/ChartOhlcWrapper/utils' import Box from '@ui/Box' -import TokenIcon from '@lend/components/TokenIcon' +import TokenIcon from '@/lend/components/TokenIcon' import { Chip } from '@ui/Typography' import Tooltip from '@ui/Tooltip' diff --git a/apps/main/src/lend/components/ChartOhlcWrapper/index.tsx b/apps/main/src/lend/components/ChartOhlcWrapper/index.tsx index a1008ebfe..80177242a 100644 --- a/apps/main/src/lend/components/ChartOhlcWrapper/index.tsx +++ b/apps/main/src/lend/components/ChartOhlcWrapper/index.tsx @@ -5,17 +5,17 @@ import { useEffect, useState, useMemo, useCallback } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { getThreeHundredResultsAgo, subtractTimeUnit } from '@ui/Chart/utils' import Button from '@ui/Button' import ChartWrapper from '@ui/Chart' import Icon from '@ui/Icon' import Box from '@ui/Box' -import PoolActivity from '@lend/components/ChartOhlcWrapper/PoolActivity' +import PoolActivity from '@/lend/components/ChartOhlcWrapper/PoolActivity' import TextCaption from '@ui/TextCaption' import AlertBox from '@ui/AlertBox' -import { useOneWayMarket } from '@lend/entities/chain' +import { useOneWayMarket } from '@/lend/entities/chain' import { useUserProfileStore } from '@ui-kit/features/user-profile' const ChartOhlcWrapper: React.FC = ({ rChainId, userActiveKey, rOwmId }) => { diff --git a/apps/main/src/lend/components/ChartOhlcWrapper/types.ts b/apps/main/src/lend/components/ChartOhlcWrapper/types.ts index 5ec5d3fe4..c8485537c 100644 --- a/apps/main/src/lend/components/ChartOhlcWrapper/types.ts +++ b/apps/main/src/lend/components/ChartOhlcWrapper/types.ts @@ -1,5 +1,5 @@ import type { LlammaControllerEvent, LlammaTradeEvent } from '@ui/Chart/types' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' export type LendingMarketTokens = { borrowedToken: { diff --git a/apps/main/src/lend/components/ChipCollateral.tsx b/apps/main/src/lend/components/ChipCollateral.tsx index 1840873e4..35059fc02 100644 --- a/apps/main/src/lend/components/ChipCollateral.tsx +++ b/apps/main/src/lend/components/ChipCollateral.tsx @@ -5,7 +5,7 @@ import { useMemo, useRef } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { copyToClipboard, shortenTokenAddress } from '@lend/utils/helpers' +import { copyToClipboard, shortenTokenAddress } from '@/lend/utils/helpers' import Icon from '@ui/Icon' interface ButtonProps extends AriaButtonProps { diff --git a/apps/main/src/lend/components/ConnectWallet.tsx b/apps/main/src/lend/components/ConnectWallet.tsx index ab6210bf5..532619d8d 100644 --- a/apps/main/src/lend/components/ConnectWallet.tsx +++ b/apps/main/src/lend/components/ConnectWallet.tsx @@ -1,7 +1,7 @@ import { isLoading } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { CONNECT_STAGE } from '@lend/constants' +import { CONNECT_STAGE } from '@/lend/constants' import ConnectWalletPrompt from '@ui/ConnectWalletPrompt' import { useUserProfileStore } from '@ui-kit/features/user-profile' diff --git a/apps/main/src/lend/components/DetailInfoCrvIncentives.tsx b/apps/main/src/lend/components/DetailInfoCrvIncentives.tsx index a0c412014..36ea5ce53 100644 --- a/apps/main/src/lend/components/DetailInfoCrvIncentives.tsx +++ b/apps/main/src/lend/components/DetailInfoCrvIncentives.tsx @@ -4,15 +4,15 @@ import React, { useMemo } from 'react' import styled from 'styled-components' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { INVALID_ADDRESS } from '@lend/constants' -import useAbiTotalSupply from '@lend/hooks/useAbiTotalSupply' -import useSupplyTotalApr from '@lend/hooks/useSupplyTotalApr' +import { INVALID_ADDRESS } from '@/lend/constants' +import useAbiTotalSupply from '@/lend/hooks/useAbiTotalSupply' +import useSupplyTotalApr from '@/lend/hooks/useSupplyTotalApr' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' import TooltipIcon from '@ui/Tooltip/TooltipIcon' -import { useOneWayMarket } from '@lend/entities/chain' -import { ChainId } from '@lend/types/lend.types' +import { useOneWayMarket } from '@/lend/entities/chain' +import { ChainId } from '@/lend/types/lend.types' type Data = { label: string diff --git a/apps/main/src/lend/components/DetailInfoEstimateGas.tsx b/apps/main/src/lend/components/DetailInfoEstimateGas.tsx index 56409b595..50bba1341 100644 --- a/apps/main/src/lend/components/DetailInfoEstimateGas.tsx +++ b/apps/main/src/lend/components/DetailInfoEstimateGas.tsx @@ -5,14 +5,14 @@ import styled from 'styled-components' import { BN, FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { gweiToEther, weiToGwei } from '@ui-kit/utils' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' import DetailInfo from '@ui/DetailInfo' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import { useTokenUsdRate } from '@lend/entities/token' -import { NETWORK_TOKEN } from '@lend/constants' -import { ChainId } from '@lend/types/lend.types' +import { useTokenUsdRate } from '@/lend/entities/token' +import { NETWORK_TOKEN } from '@/lend/constants' +import { ChainId } from '@/lend/types/lend.types' export type StepProgress = { active: number diff --git a/apps/main/src/lend/components/DetailInfoHealth.tsx b/apps/main/src/lend/components/DetailInfoHealth.tsx index db8bcc38e..7683948f1 100644 --- a/apps/main/src/lend/components/DetailInfoHealth.tsx +++ b/apps/main/src/lend/components/DetailInfoHealth.tsx @@ -2,7 +2,7 @@ import { t } from '@lingui/macro' import React, { useEffect, useMemo, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_HEALTH_MODE } from '@lend/components/PageLoanManage/utils' +import { DEFAULT_HEALTH_MODE } from '@/lend/components/PageLoanManage/utils' import { formatNumber } from '@ui/utils' import Box from '@ui/Box' @@ -10,11 +10,11 @@ import DetailInfo from '@ui/DetailInfo' import ExternalLink from 'ui/src/Link/ExternalLink' import Icon from '@ui/Icon' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import { helpers } from '@lend/lib/apiLending' -import useStore from '@lend/store/useStore' -import { useOneWayMarket } from '@lend/entities/chain' +import { helpers } from '@/lend/lib/apiLending' +import useStore from '@/lend/store/useStore' +import { useOneWayMarket } from '@/lend/entities/chain' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { PageContentProps, HeathColorKey, HealthMode } from '@lend/types/lend.types' +import { PageContentProps, HeathColorKey, HealthMode } from '@/lend/types/lend.types' type FormType = 'create-loan' | 'collateral-decrease' | '' diff --git a/apps/main/src/lend/components/DetailInfoLTV.tsx b/apps/main/src/lend/components/DetailInfoLTV.tsx index 8f24c66dd..fa3bde114 100644 --- a/apps/main/src/lend/components/DetailInfoLTV.tsx +++ b/apps/main/src/lend/components/DetailInfoLTV.tsx @@ -4,8 +4,8 @@ import { t } from '@lingui/macro' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import DetailInfo from '@ui/DetailInfo' -import { useTokenUsdRate, useTokenUsdRates } from '@lend/entities/token' -import { useChainId } from '@lend/entities/chain' +import { useTokenUsdRate, useTokenUsdRates } from '@/lend/entities/token' +import { useChainId } from '@/lend/entities/chain' type Amount = { amount: string; address: string } diff --git a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedLabel.tsx b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedLabel.tsx index dec0d83e4..f9c4f8f6b 100644 --- a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedLabel.tsx +++ b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedLabel.tsx @@ -1,11 +1,11 @@ -import type { DetailInfoLeverageExpectedProps } from '@lend/components/DetailInfoLeverageAdvancedExpected/types' +import type { DetailInfoLeverageExpectedProps } from '@/lend/components/DetailInfoLeverageAdvancedExpected/types' import React from 'react' import styled from 'styled-components' -import { format } from '@lend/components/DetailInfoLeverageAdvancedExpected/utils' +import { format } from '@/lend/components/DetailInfoLeverageAdvancedExpected/utils' -import { DetailsButton } from '@lend/components/DetailInfoLeverageAdvancedExpected' +import { DetailsButton } from '@/lend/components/DetailInfoLeverageAdvancedExpected' import Icon from '@ui/Icon' import Loader from '@ui/Loader' diff --git a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSummary.tsx b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSummary.tsx index c05fb6986..3a636346a 100644 --- a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSummary.tsx +++ b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSummary.tsx @@ -1,10 +1,10 @@ -import type { DetailInfoLeverageExpectedProps } from '@lend/components/DetailInfoLeverageAdvancedExpected/types' -import type { BreakdownItem } from '@lend/components/DetailInfoLeverageAdvancedExpected/types' +import type { DetailInfoLeverageExpectedProps } from '@/lend/components/DetailInfoLeverageAdvancedExpected/types' +import type { BreakdownItem } from '@/lend/components/DetailInfoLeverageAdvancedExpected/types' import React from 'react' import styled from 'styled-components' -import { format } from '@lend/components/DetailInfoLeverageAdvancedExpected/utils' +import { format } from '@/lend/components/DetailInfoLeverageAdvancedExpected/utils' import Icon from '@ui/Icon' diff --git a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSwapDetails.tsx b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSwapDetails.tsx index 31b1d4c7b..7f535261f 100644 --- a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSwapDetails.tsx +++ b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSwapDetails.tsx @@ -1,12 +1,12 @@ -import type { DetailInfoLeverageExpectedProps, Hop } from '@lend/components/DetailInfoLeverageAdvancedExpected/types' +import type { DetailInfoLeverageExpectedProps, Hop } from '@/lend/components/DetailInfoLeverageAdvancedExpected/types' import React, { useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import apiLending from '@lend/lib/apiLending' -import networks from '@lend/networks' +import apiLending from '@/lend/lib/apiLending' +import networks from '@/lend/networks' import Box from '@ui/Box' import ExternalLink from '@ui/Link/ExternalLink' -import RouteLine from '@lend/components/DetailInfoLeverageAdvancedExpected/components/RouteLine' -import RouteToken from '@lend/components/DetailInfoLeverageAdvancedExpected/components/RouteToken' +import RouteLine from '@/lend/components/DetailInfoLeverageAdvancedExpected/components/RouteLine' +import RouteToken from '@/lend/components/DetailInfoLeverageAdvancedExpected/components/RouteToken' import Spinner, { SpinnerWrapper } from '@ui/Spinner' const stateDefault = { height: '34px', data: [] as Hop[] } diff --git a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/HopSteps.tsx b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/HopSteps.tsx index bd1cde39f..0010b9146 100644 --- a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/HopSteps.tsx +++ b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/HopSteps.tsx @@ -6,7 +6,7 @@ import { formatNumber } from '@ui/utils' import Box from '@ui/Box' import Icon from '@ui/Icon' import TextCaption from '@ui/TextCaption' -import TokenIcon from '@lend/components/TokenIcon' +import TokenIcon from '@/lend/components/TokenIcon' const HopSteps = ({ fromTokenAddress, diff --git a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/RouteToken.tsx b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/RouteToken.tsx index 2e2266642..ac543ef35 100644 --- a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/RouteToken.tsx +++ b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/components/RouteToken.tsx @@ -2,10 +2,10 @@ import React from 'react' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import { format } from '@lend/components/DetailInfoLeverageAdvancedExpected/utils' +import { format } from '@/lend/components/DetailInfoLeverageAdvancedExpected/utils' import Box from '@ui/Box' -import TokenIcon from '@lend/components/TokenIcon' +import TokenIcon from '@/lend/components/TokenIcon' const RouteToken = ({ imageBaseUrl, diff --git a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/index.tsx b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/index.tsx index 6b30b09bd..ef3a7dd7e 100644 --- a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/index.tsx +++ b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/index.tsx @@ -1,13 +1,13 @@ -import type { DetailInfoLeverageExpectedProps } from '@lend/components/DetailInfoLeverageAdvancedExpected/types' +import type { DetailInfoLeverageExpectedProps } from '@/lend/components/DetailInfoLeverageAdvancedExpected/types' import React, { useState } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' import Button from '@ui/Button' -import ExpectedLabel from '@lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedLabel' -import ExpectedSummary from '@lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSummary' -import ExpectedSwapDetails from '@lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSwapDetails' +import ExpectedLabel from '@/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedLabel' +import ExpectedSummary from '@/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSummary' +import ExpectedSwapDetails from '@/lend/components/DetailInfoLeverageAdvancedExpected/components/ExpectedSwapDetails' import TextCaption from '@ui/TextCaption' const DetailInfoLeverageAdvancedExpected = ({ diff --git a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/types.ts b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/types.ts index 8e9496dfd..c237d8c8a 100644 --- a/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/types.ts +++ b/apps/main/src/lend/components/DetailInfoLeverageAdvancedExpected/types.ts @@ -1,4 +1,4 @@ -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' export type Hop = { hops: { name: string; part: number; fromTokenAddress: string; toTokenAddress: string }[][] diff --git a/apps/main/src/lend/components/DetailInfoLiqRange.tsx b/apps/main/src/lend/components/DetailInfoLiqRange.tsx index 14411806f..7e389aac3 100644 --- a/apps/main/src/lend/components/DetailInfoLiqRange.tsx +++ b/apps/main/src/lend/components/DetailInfoLiqRange.tsx @@ -1,19 +1,19 @@ -import type { LiqRangeSliderIdx } from '@lend/store/types' +import type { LiqRangeSliderIdx } from '@/lend/store/types' import React, { useMemo } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { Chip } from '@ui/Typography' import Button from '@ui/Button' -import ChartLiquidationRange from '@lend/components/ChartLiquidationRange' +import ChartLiquidationRange from '@/lend/components/ChartLiquidationRange' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId, HealthMode } from '@lend/types/lend.types' +import { ChainId, HealthMode } from '@/lend/types/lend.types' const DetailInfoLiqRange = ({ rChainId, diff --git a/apps/main/src/lend/components/DetailInfoLiqRangeEdit.tsx b/apps/main/src/lend/components/DetailInfoLiqRangeEdit.tsx index b0caabfe3..a34008c43 100644 --- a/apps/main/src/lend/components/DetailInfoLiqRangeEdit.tsx +++ b/apps/main/src/lend/components/DetailInfoLiqRangeEdit.tsx @@ -1,4 +1,4 @@ -import type { LiqRange, LiqRangeSliderIdx } from '@lend/store/types' +import type { LiqRange, LiqRangeSliderIdx } from '@/lend/store/types' import { t } from '@lingui/macro' import React, { useEffect, useState } from 'react' diff --git a/apps/main/src/lend/components/DetailInfoRate.tsx b/apps/main/src/lend/components/DetailInfoRate.tsx index e60a47a89..1e957facb 100644 --- a/apps/main/src/lend/components/DetailInfoRate.tsx +++ b/apps/main/src/lend/components/DetailInfoRate.tsx @@ -2,11 +2,11 @@ import { t } from '@lingui/macro' import React from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' -import { ChainId, FutureRates } from '@lend/types/lend.types' +import { ChainId, FutureRates } from '@/lend/types/lend.types' const DetailInfoRate = ({ rChainId, diff --git a/apps/main/src/lend/components/DetailInfoSlippageTolerance.tsx b/apps/main/src/lend/components/DetailInfoSlippageTolerance.tsx index 58ab176ba..aadc12655 100644 --- a/apps/main/src/lend/components/DetailInfoSlippageTolerance.tsx +++ b/apps/main/src/lend/components/DetailInfoSlippageTolerance.tsx @@ -3,7 +3,7 @@ import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import AdvancedSettings from '@lend/components/AdvancedSettings' +import AdvancedSettings from '@/lend/components/AdvancedSettings' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' diff --git a/apps/main/src/lend/components/DetailsMarket/components/DetailInfoAddressLookup.tsx b/apps/main/src/lend/components/DetailsMarket/components/DetailInfoAddressLookup.tsx index 347dfbdd4..e7c396df0 100644 --- a/apps/main/src/lend/components/DetailsMarket/components/DetailInfoAddressLookup.tsx +++ b/apps/main/src/lend/components/DetailsMarket/components/DetailInfoAddressLookup.tsx @@ -1,16 +1,16 @@ -import type { StatsProps } from '@lend/components/DetailsMarket/styles' +import type { StatsProps } from '@/lend/components/DetailsMarket/styles' import React from 'react' import styled from 'styled-components' -import { copyToClipboard, shortenTokenAddress } from '@lend/utils/helpers' -import networks from '@lend/networks' +import { copyToClipboard, shortenTokenAddress } from '@/lend/utils/helpers' +import networks from '@/lend/networks' -import { StyledStats } from '@lend/components/DetailsMarket/styles' +import { StyledStats } from '@/lend/components/DetailsMarket/styles' import ExternalLink from '@ui/Link/ExternalLink' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' interface Props extends StatsProps { chainId: ChainId diff --git a/apps/main/src/lend/components/DetailsMarket/components/DetailsContracts.tsx b/apps/main/src/lend/components/DetailsMarket/components/DetailsContracts.tsx index 437056875..6e2a040f8 100644 --- a/apps/main/src/lend/components/DetailsMarket/components/DetailsContracts.tsx +++ b/apps/main/src/lend/components/DetailsMarket/components/DetailsContracts.tsx @@ -1,15 +1,15 @@ import React from 'react' import { t } from '@lingui/macro' -import { INVALID_ADDRESS } from '@lend/constants' +import { INVALID_ADDRESS } from '@/lend/constants' -import { SubTitle } from '@lend/components/DetailsMarket/styles' +import { SubTitle } from '@/lend/components/DetailsMarket/styles' import Box from '@ui/Box' import Chip from '@ui/Typography/Chip' -import ChipInactive from '@lend/components/ChipInactive' -import DetailInfoAddressLookup from '@lend/components/DetailsMarket/components/DetailInfoAddressLookup' -import TokenLabel from '@lend/components/TokenLabel' -import { PageContentProps } from '@lend/types/lend.types' +import ChipInactive from '@/lend/components/ChipInactive' +import DetailInfoAddressLookup from '@/lend/components/DetailsMarket/components/DetailInfoAddressLookup' +import TokenLabel from '@/lend/components/TokenLabel' +import { PageContentProps } from '@/lend/types/lend.types' type ContractItems = { label: string | React.ReactNode; address: string | undefined; invalidText?: string }[] diff --git a/apps/main/src/lend/components/DetailsMarket/components/DetailsLoan.tsx b/apps/main/src/lend/components/DetailsMarket/components/DetailsLoan.tsx index 35e0e46bb..a47a51cc1 100644 --- a/apps/main/src/lend/components/DetailsMarket/components/DetailsLoan.tsx +++ b/apps/main/src/lend/components/DetailsMarket/components/DetailsLoan.tsx @@ -1,24 +1,24 @@ import React from 'react' import { t } from '@lingui/macro' -import { TITLE } from '@lend/constants' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import { TITLE } from '@/lend/constants' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' -import { ContentWrapper, DarkContent, SubTitle, Wrapper } from '@lend/components/DetailsMarket/styles' +import { ContentWrapper, DarkContent, SubTitle, Wrapper } from '@/lend/components/DetailsMarket/styles' import Box from '@ui/Box' -import CellBorrowRate from '@lend/components/SharedCellData/CellBorrowRate' -import CellCap from '@lend/components/SharedCellData/CellCap' -import CellLoanTotalDebt from '@lend/components/SharedCellData/CellLoanTotalDebt' -import CellRewards from '@lend/components/SharedCellData/CellRewards' -import CellToken from '@lend/components/SharedCellData/CellToken' -import CellTotalCollateralValue from '@lend/components/SharedCellData/CellTotalCollateralValue' -import DetailsLoanChartBalances from '@lend/components/DetailsMarket/components/DetailsLoanChartBalances' -import DetailsContracts from '@lend/components/DetailsMarket/components/DetailsContracts' -import MarketParameters from '@lend/components/DetailsMarket/components/MarketParameters' -import ChartOhlcWrapper from '@lend/components/ChartOhlcWrapper' +import CellBorrowRate from '@/lend/components/SharedCellData/CellBorrowRate' +import CellCap from '@/lend/components/SharedCellData/CellCap' +import CellLoanTotalDebt from '@/lend/components/SharedCellData/CellLoanTotalDebt' +import CellRewards from '@/lend/components/SharedCellData/CellRewards' +import CellToken from '@/lend/components/SharedCellData/CellToken' +import CellTotalCollateralValue from '@/lend/components/SharedCellData/CellTotalCollateralValue' +import DetailsLoanChartBalances from '@/lend/components/DetailsMarket/components/DetailsLoanChartBalances' +import DetailsContracts from '@/lend/components/DetailsMarket/components/DetailsContracts' +import MarketParameters from '@/lend/components/DetailsMarket/components/MarketParameters' +import ChartOhlcWrapper from '@/lend/components/ChartOhlcWrapper' import ListInfoItem, { ListInfoItems, ListInfoItemsWrapper } from '@ui/ListInfo' -import { MarketListType, PageContentProps, TitleKey } from '@lend/types/lend.types' +import { MarketListType, PageContentProps, TitleKey } from '@/lend/types/lend.types' const DetailsLoan = ({ type, ...pageProps }: PageContentProps & { type: MarketListType }) => { const { rChainId, rOwmId, market, titleMapper, userActiveKey } = pageProps diff --git a/apps/main/src/lend/components/DetailsMarket/components/DetailsLoanChartBalances.tsx b/apps/main/src/lend/components/DetailsMarket/components/DetailsLoanChartBalances.tsx index cd3789972..0efb389a6 100644 --- a/apps/main/src/lend/components/DetailsMarket/components/DetailsLoanChartBalances.tsx +++ b/apps/main/src/lend/components/DetailsMarket/components/DetailsLoanChartBalances.tsx @@ -1,14 +1,14 @@ -import type { BrushStartEndIndex } from '@lend/components/ChartBandBalances/types' +import type { BrushStartEndIndex } from '@/lend/components/ChartBandBalances/types' import { t } from '@lingui/macro' import React, { useMemo, useState } from 'react' import cloneDeep from 'lodash/cloneDeep' -import { DEFAULT_BAND_CHART_DATA } from '@lend/components/DetailsUser/utils' -import useStore from '@lend/store/useStore' +import { DEFAULT_BAND_CHART_DATA } from '@/lend/components/DetailsUser/utils' +import useStore from '@/lend/store/useStore' -import ChartBandBalances from '@lend/components/ChartBandBalances' -import { PageContentProps, ParsedBandsBalances } from '@lend/types/lend.types' +import ChartBandBalances from '@/lend/components/ChartBandBalances' +import { PageContentProps, ParsedBandsBalances } from '@/lend/types/lend.types' const DetailsLoanChartBalances = ({ rChainId, diff --git a/apps/main/src/lend/components/DetailsMarket/components/DetailsSupply.tsx b/apps/main/src/lend/components/DetailsMarket/components/DetailsSupply.tsx index e4af64bd4..81e33d5c7 100644 --- a/apps/main/src/lend/components/DetailsMarket/components/DetailsSupply.tsx +++ b/apps/main/src/lend/components/DetailsMarket/components/DetailsSupply.tsx @@ -1,20 +1,20 @@ import React from 'react' import styled from 'styled-components' -import { TITLE } from '@lend/constants' +import { TITLE } from '@/lend/constants' import { breakpoints } from '@ui/utils' -import { ContentWrapper, DarkContent } from '@lend/components/DetailsMarket/styles' +import { ContentWrapper, DarkContent } from '@/lend/components/DetailsMarket/styles' import Box from '@ui/Box' -import CellCap from '@lend/components/SharedCellData/CellCap' -import CellLoanTotalDebt from '@lend/components/SharedCellData/CellLoanTotalDebt' -import CellToken from '@lend/components/SharedCellData/CellToken' -import CellSupplyTotalLiquidity from '@lend/components/SharedCellData/CellSupplyTotalLiquidity' -import DetailsSupplyRewards from '@lend/components/DetailsMarket/components/DetailsSupplyRewards' -import DetailsContracts from '@lend/components/DetailsMarket/components/DetailsContracts' +import CellCap from '@/lend/components/SharedCellData/CellCap' +import CellLoanTotalDebt from '@/lend/components/SharedCellData/CellLoanTotalDebt' +import CellToken from '@/lend/components/SharedCellData/CellToken' +import CellSupplyTotalLiquidity from '@/lend/components/SharedCellData/CellSupplyTotalLiquidity' +import DetailsSupplyRewards from '@/lend/components/DetailsMarket/components/DetailsSupplyRewards' +import DetailsContracts from '@/lend/components/DetailsMarket/components/DetailsContracts' import ListInfoItem, { ListInfoItems, ListInfoItemsWrapper } from '@ui/ListInfo' -import MarketParameters from '@lend/components/DetailsMarket/components/MarketParameters' -import { MarketListType, PageContentProps, TitleKey } from '@lend/types/lend.types' +import MarketParameters from '@/lend/components/DetailsMarket/components/MarketParameters' +import { MarketListType, PageContentProps, TitleKey } from '@/lend/types/lend.types' const DetailsSupply = ({ type, ...pageProps }: PageContentProps & { type: MarketListType }) => { const { rChainId, rOwmId, market, titleMapper } = pageProps diff --git a/apps/main/src/lend/components/DetailsMarket/components/DetailsSupplyRewards.tsx b/apps/main/src/lend/components/DetailsMarket/components/DetailsSupplyRewards.tsx index 7c913f3d3..70e8280ad 100644 --- a/apps/main/src/lend/components/DetailsMarket/components/DetailsSupplyRewards.tsx +++ b/apps/main/src/lend/components/DetailsMarket/components/DetailsSupplyRewards.tsx @@ -2,20 +2,20 @@ import React from 'react' import { t } from '@lingui/macro' import styled, { css } from 'styled-components' -import { handleClickCopy, shortenTokenName } from '@lend/utils/helpers' +import { handleClickCopy, shortenTokenName } from '@/lend/utils/helpers' import { breakpoints, FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import networks from '@lend/networks' -import useSupplyTotalApr from '@lend/hooks/useSupplyTotalApr' +import networks from '@/lend/networks' +import useSupplyTotalApr from '@/lend/hooks/useSupplyTotalApr' import Box from '@ui/Box' import Chip from '@ui/Typography/Chip' -import ChipInactive from '@lend/components/ChipInactive' +import ChipInactive from '@/lend/components/ChipInactive' import ExternalLink from '@ui/Link/ExternalLink' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' import ListInfoItem from '@ui/ListInfo' import TextCaption from '@ui/TextCaption' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' // TODO: refactor to UI const DetailsSupplyRewards = ({ rChainId, rOwmId }: { rChainId: ChainId; rOwmId: string }) => { diff --git a/apps/main/src/lend/components/DetailsMarket/components/DetailsSupplyRewardsCrv.tsx b/apps/main/src/lend/components/DetailsMarket/components/DetailsSupplyRewardsCrv.tsx index 0bf0c84f6..2b790dc7d 100644 --- a/apps/main/src/lend/components/DetailsMarket/components/DetailsSupplyRewardsCrv.tsx +++ b/apps/main/src/lend/components/DetailsMarket/components/DetailsSupplyRewardsCrv.tsx @@ -2,11 +2,11 @@ import React, { useMemo } from 'react' import { t } from '@lingui/macro' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Chip from '@ui/Typography/Chip' import Icon from '@ui/Icon' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const DetailsSupplyRewardsCrv = ({ rChainId, diff --git a/apps/main/src/lend/components/DetailsMarket/components/MarketParameters.tsx b/apps/main/src/lend/components/DetailsMarket/components/MarketParameters.tsx index e90c0dd9c..9596e0df1 100644 --- a/apps/main/src/lend/components/DetailsMarket/components/MarketParameters.tsx +++ b/apps/main/src/lend/components/DetailsMarket/components/MarketParameters.tsx @@ -2,16 +2,16 @@ import React, { useEffect } from 'react' import { t } from '@lingui/macro' import { FORMAT_OPTIONS, formatNumber, NumberFormatOptions } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { SubTitle } from '@lend/components/DetailsMarket/styles' +import { SubTitle } from '@/lend/components/DetailsMarket/styles' import Box from '@ui/Box' import Chip from '@ui/Typography/Chip' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' -import { useOneWayMarket } from '@lend/entities/chain' +import { useOneWayMarket } from '@/lend/entities/chain' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const MarketParameters = ({ rChainId, diff --git a/apps/main/src/lend/components/DetailsMarket/index.tsx b/apps/main/src/lend/components/DetailsMarket/index.tsx index c0b610c4d..1635166d3 100644 --- a/apps/main/src/lend/components/DetailsMarket/index.tsx +++ b/apps/main/src/lend/components/DetailsMarket/index.tsx @@ -1,8 +1,8 @@ import React from 'react' -import DetailsLoan from '@lend/components/DetailsMarket/components/DetailsLoan' -import DetailsSupply from '@lend/components/DetailsMarket/components/DetailsSupply' -import { MarketListType, PageContentProps } from '@lend/types/lend.types' +import DetailsLoan from '@/lend/components/DetailsMarket/components/DetailsLoan' +import DetailsSupply from '@/lend/components/DetailsMarket/components/DetailsSupply' +import { MarketListType, PageContentProps } from '@/lend/types/lend.types' const DetailsMarket = ({ type, ...pageProps }: PageContentProps & { type: MarketListType }) => type === 'borrow' ? : diff --git a/apps/main/src/lend/components/DetailsUser/components/DetailsConnectWallet.tsx b/apps/main/src/lend/components/DetailsUser/components/DetailsConnectWallet.tsx index a7679bd06..8b132d17b 100644 --- a/apps/main/src/lend/components/DetailsUser/components/DetailsConnectWallet.tsx +++ b/apps/main/src/lend/components/DetailsUser/components/DetailsConnectWallet.tsx @@ -1,8 +1,8 @@ import React from 'react' import { t } from '@lingui/macro' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { CONNECT_STAGE } from '@lend/constants' +import { CONNECT_STAGE } from '@/lend/constants' import Box from '@ui/Box' import Button from '@ui/Button' diff --git a/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoan.tsx b/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoan.tsx index 36df09d6d..80a5ac3ea 100644 --- a/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoan.tsx +++ b/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoan.tsx @@ -1,29 +1,29 @@ import React from 'react' import styled from 'styled-components' -import { TITLE } from '@lend/constants' -import { _showContent } from '@lend/utils/helpers' +import { TITLE } from '@/lend/constants' +import { _showContent } from '@/lend/utils/helpers' import { breakpoints } from '@ui/utils' -import useStore from '@lend/store/useStore' -import networks from '@lend/networks' +import useStore from '@/lend/store/useStore' +import networks from '@/lend/networks' -import { ContentWrapper } from '@lend/components/DetailsMarket/styles' -import AlertNoLoanFound from '@lend/components/AlertNoLoanFound' +import { ContentWrapper } from '@/lend/components/DetailsMarket/styles' +import AlertNoLoanFound from '@/lend/components/AlertNoLoanFound' import Box from '@ui/Box' -import CellHealthStatus from '@lend/components/SharedCellData/CellHealthStatus' -import CellUserMain from '@lend/components/SharedCellData/CellUserMain' -import CellLlammaBalances from '@lend/components/SharedCellData/CellLlammaBalances' -import CellLiquidationRange from '@lend/components/SharedCellData/CellLiquidationRange' -import CellLoanState from '@lend/components/SharedCellData/CellLoanState' -import CellLoss from '@lend/components/SharedCellData/CellLoss' -import DetailsConnectWallet from '@lend/components/DetailsUser/components/DetailsConnectWallet' -import DetailsUserLoanAlertSoftLiquidation from '@lend/components/DetailsUser/components/DetailsUserLoanAlertSoftLiquidation' -import DetailsUserLoanChartBandBalances from '@lend/components/DetailsUser/components/DetailsUserLoanChartBandBalances' -import DetailsUserLoanChartLiquidationRange from '@lend/components/DetailsUser/components/DetailsUserLoanChartLiquidationRange' -import ChartOhlcWrapper from '@lend/components/ChartOhlcWrapper' +import CellHealthStatus from '@/lend/components/SharedCellData/CellHealthStatus' +import CellUserMain from '@/lend/components/SharedCellData/CellUserMain' +import CellLlammaBalances from '@/lend/components/SharedCellData/CellLlammaBalances' +import CellLiquidationRange from '@/lend/components/SharedCellData/CellLiquidationRange' +import CellLoanState from '@/lend/components/SharedCellData/CellLoanState' +import CellLoss from '@/lend/components/SharedCellData/CellLoss' +import DetailsConnectWallet from '@/lend/components/DetailsUser/components/DetailsConnectWallet' +import DetailsUserLoanAlertSoftLiquidation from '@/lend/components/DetailsUser/components/DetailsUserLoanAlertSoftLiquidation' +import DetailsUserLoanChartBandBalances from '@/lend/components/DetailsUser/components/DetailsUserLoanChartBandBalances' +import DetailsUserLoanChartLiquidationRange from '@/lend/components/DetailsUser/components/DetailsUserLoanChartLiquidationRange' +import ChartOhlcWrapper from '@/lend/components/ChartOhlcWrapper' import ListInfoItem, { ListInfoItems, ListInfoItemsWrapper } from '@ui/ListInfo' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { PageContentProps, TitleKey } from '@lend/types/lend.types' +import { PageContentProps, TitleKey } from '@/lend/types/lend.types' const DetailsUserLoan = (pageProps: PageContentProps) => { const { rChainId, rOwmId, api, market, titleMapper, userActiveKey } = pageProps diff --git a/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanAlertSoftLiquidation.tsx b/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanAlertSoftLiquidation.tsx index fed9837d6..3660cc4eb 100644 --- a/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanAlertSoftLiquidation.tsx +++ b/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanAlertSoftLiquidation.tsx @@ -2,12 +2,12 @@ import { useMemo } from 'react' import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import AlertBox from '@ui/AlertBox' import Box from '@ui/Box' import ExternalLink from '@ui/Link/ExternalLink' -import { PageContentProps } from '@lend/types/lend.types' +import { PageContentProps } from '@/lend/types/lend.types' const DetailsUserLoanAlertSoftLiquidation = ({ market, userActiveKey }: PageContentProps) => { const { borrowed_token, collateral_token } = market ?? {} diff --git a/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanChartBandBalances.tsx b/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanChartBandBalances.tsx index c0c4763d4..dd8b67ec3 100644 --- a/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanChartBandBalances.tsx +++ b/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanChartBandBalances.tsx @@ -1,14 +1,14 @@ -import type { BrushStartEndIndex } from '@lend/components/ChartBandBalances/types' +import type { BrushStartEndIndex } from '@/lend/components/ChartBandBalances/types' import { useEffect, useMemo, useState } from 'react' import { t } from '@lingui/macro' import cloneDeep from 'lodash/cloneDeep' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { DEFAULT_BAND_CHART_DATA } from '@lend/components/DetailsUser/utils' -import { helpers } from '@lend/lib/apiLending' -import ChartBandBalances from '@lend/components/ChartBandBalances' -import { PageContentProps } from '@lend/types/lend.types' +import { DEFAULT_BAND_CHART_DATA } from '@/lend/components/DetailsUser/utils' +import { helpers } from '@/lend/lib/apiLending' +import ChartBandBalances from '@/lend/components/ChartBandBalances' +import { PageContentProps } from '@/lend/types/lend.types' const DetailsUserLoanChartBandBalances = ({ rChainId, diff --git a/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanChartLiquidationRange.tsx b/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanChartLiquidationRange.tsx index a75485c9e..fcc629b7d 100644 --- a/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanChartLiquidationRange.tsx +++ b/apps/main/src/lend/components/DetailsUser/components/DetailsUserLoanChartLiquidationRange.tsx @@ -1,10 +1,10 @@ -import { SubTitle } from '@lend/components/DetailsMarket/styles' +import { SubTitle } from '@/lend/components/DetailsMarket/styles' import { t } from '@lingui/macro' -import ChartLiquidationRange from '@lend/components/ChartLiquidationRange' -import useStore from '@lend/store/useStore' +import ChartLiquidationRange from '@/lend/components/ChartLiquidationRange' +import useStore from '@/lend/store/useStore' import { useMemo } from 'react' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { PageContentProps } from '@lend/types/lend.types' +import { PageContentProps } from '@/lend/types/lend.types' const DetailsUserLoanChartLiquidationRange = ({ rChainId, rOwmId, userActiveKey }: PageContentProps) => { const loanDetailsPrices = useStore((state) => state.markets.pricesMapper[rChainId]?.[rOwmId]?.prices) diff --git a/apps/main/src/lend/components/DetailsUser/components/DetailsUserSupply.tsx b/apps/main/src/lend/components/DetailsUser/components/DetailsUserSupply.tsx index 025beea01..44c80e764 100644 --- a/apps/main/src/lend/components/DetailsUser/components/DetailsUserSupply.tsx +++ b/apps/main/src/lend/components/DetailsUser/components/DetailsUserSupply.tsx @@ -1,18 +1,18 @@ import React from 'react' import styled from 'styled-components' -import { TITLE } from '@lend/constants' +import { TITLE } from '@/lend/constants' import { breakpoints } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { ContentWrapper } from '@lend/components/DetailsMarket/styles' -import AlertNoVaultSharesFound from '@lend/components/AlertNoVaultSharesFound' -import CellUserMain from '@lend/components/SharedCellData/CellUserMain' -import CellToken from '@lend/components/SharedCellData/CellToken' -import DetailsConnectWallet from '@lend/components/DetailsUser/components/DetailsConnectWallet' -import DetailsUserSupplyStakedUnstaked from '@lend/components/DetailsUser/components/DetailsUserSupplyStakedUnstaked' +import { ContentWrapper } from '@/lend/components/DetailsMarket/styles' +import AlertNoVaultSharesFound from '@/lend/components/AlertNoVaultSharesFound' +import CellUserMain from '@/lend/components/SharedCellData/CellUserMain' +import CellToken from '@/lend/components/SharedCellData/CellToken' +import DetailsConnectWallet from '@/lend/components/DetailsUser/components/DetailsConnectWallet' +import DetailsUserSupplyStakedUnstaked from '@/lend/components/DetailsUser/components/DetailsUserSupplyStakedUnstaked' import ListInfoItem, { ListInfoItems, ListInfoItemsWrapper } from '@ui/ListInfo' -import { PageContentProps, TitleKey } from '@lend/types/lend.types' +import { PageContentProps, TitleKey } from '@/lend/types/lend.types' const DetailsUserSupply = (pageProps: PageContentProps) => { const { rChainId, rOwmId, api, userActiveKey, market, titleMapper } = pageProps diff --git a/apps/main/src/lend/components/DetailsUser/components/DetailsUserSupplyStakedUnstaked.tsx b/apps/main/src/lend/components/DetailsUser/components/DetailsUserSupplyStakedUnstaked.tsx index 9c9e37c23..a727f7bb9 100644 --- a/apps/main/src/lend/components/DetailsUser/components/DetailsUserSupplyStakedUnstaked.tsx +++ b/apps/main/src/lend/components/DetailsUser/components/DetailsUserSupplyStakedUnstaked.tsx @@ -1,5 +1,5 @@ import Box from '@ui/Box' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { formatNumber } from '@ui/utils' diff --git a/apps/main/src/lend/components/DetailsUser/index.tsx b/apps/main/src/lend/components/DetailsUser/index.tsx index 25352498f..b663b7b1a 100644 --- a/apps/main/src/lend/components/DetailsUser/index.tsx +++ b/apps/main/src/lend/components/DetailsUser/index.tsx @@ -1,8 +1,8 @@ import React from 'react' -import DetailsUserLoan from '@lend/components/DetailsUser/components/DetailsUserLoan' -import DetailsUserSupply from '@lend/components/DetailsUser/components/DetailsUserSupply' -import { PageContentProps } from '@lend/types/lend.types' +import DetailsUserLoan from '@/lend/components/DetailsUser/components/DetailsUserLoan' +import DetailsUserSupply from '@/lend/components/DetailsUser/components/DetailsUserSupply' +import { PageContentProps } from '@/lend/types/lend.types' const DetailsUser = ({ type, ...pageProps }: PageContentProps & { type: 'borrow' | 'supply' }) => type === 'borrow' ? : diff --git a/apps/main/src/lend/components/DetailsUser/styles.ts b/apps/main/src/lend/components/DetailsUser/styles.ts index 917db70d2..4a3ad4f3f 100644 --- a/apps/main/src/lend/components/DetailsUser/styles.ts +++ b/apps/main/src/lend/components/DetailsUser/styles.ts @@ -1,6 +1,6 @@ import styled from 'styled-components' -import UserInfoStats from '@lend/components/DetailsUser/components/UserInfoStats' -import { HeathColorKey } from '@lend/types/lend.types' +import UserInfoStats from '@/lend/components/DetailsUser/components/UserInfoStats' +import { HeathColorKey } from '@/lend/types/lend.types' export const MainUserInfoStats = styled(UserInfoStats)` border: 1px solid var(--nav_button--border-color); diff --git a/apps/main/src/lend/components/DetailsUser/type.ts b/apps/main/src/lend/components/DetailsUser/type.ts index aca4c846b..dd3e1cb2b 100644 --- a/apps/main/src/lend/components/DetailsUser/type.ts +++ b/apps/main/src/lend/components/DetailsUser/type.ts @@ -1,7 +1,7 @@ import type { TooltipProps } from '@ui/Tooltip/types' import React from 'react' -import { TitleKey } from '@lend/types/lend.types' +import { TitleKey } from '@/lend/types/lend.types' export type Content = { titleKey: TitleKey diff --git a/apps/main/src/lend/components/DetailsUser/utils.ts b/apps/main/src/lend/components/DetailsUser/utils.ts index 3d5f059c1..3ecb808dd 100644 --- a/apps/main/src/lend/components/DetailsUser/utils.ts +++ b/apps/main/src/lend/components/DetailsUser/utils.ts @@ -1,4 +1,4 @@ -import { ParsedBandsBalances } from '@lend/types/lend.types' +import { ParsedBandsBalances } from '@/lend/types/lend.types' export const DEFAULT_BAND_CHART_DATA: ParsedBandsBalances = { borrowed: '0', diff --git a/apps/main/src/lend/components/InpChipUsdRate.tsx b/apps/main/src/lend/components/InpChipUsdRate.tsx index e6dba7c0f..91619cf98 100644 --- a/apps/main/src/lend/components/InpChipUsdRate.tsx +++ b/apps/main/src/lend/components/InpChipUsdRate.tsx @@ -1,8 +1,8 @@ import type { InpChipUsdRateProps } from '@ui/InpChipUsdRate/InpChipUsdRate' import InpChipUsdRateComp from '@ui/InpChipUsdRate' -import { useTokenUsdRate } from '@lend/entities/token' -import { useChainId } from '@lend/entities/chain' +import { useTokenUsdRate } from '@/lend/entities/token' +import { useChainId } from '@/lend/entities/chain' const InpChipUsdRate = ({ address: tokenAddress, diff --git a/apps/main/src/lend/components/InpChipVaultShareUsdRate.tsx b/apps/main/src/lend/components/InpChipVaultShareUsdRate.tsx index 253ae24a0..e07f79cab 100644 --- a/apps/main/src/lend/components/InpChipVaultShareUsdRate.tsx +++ b/apps/main/src/lend/components/InpChipVaultShareUsdRate.tsx @@ -2,11 +2,11 @@ import type { ChipProps } from '@ui/Typography/types' import React from 'react' -import { StyledInpChip } from '@lend/components/PageLoanManage/styles' +import { StyledInpChip } from '@/lend/components/PageLoanManage/styles' import TextCaption from '@ui/TextCaption' import Box from '@ui/Box' -import useVaultShares from '@lend/hooks/useVaultShares' -import { ChainId } from '@lend/types/lend.types' +import useVaultShares from '@/lend/hooks/useVaultShares' +import { ChainId } from '@/lend/types/lend.types' const ChipVaultSharesUsdRate = ({ className = '', diff --git a/apps/main/src/lend/components/InpToken.tsx b/apps/main/src/lend/components/InpToken.tsx index a2178f604..8a5fed395 100644 --- a/apps/main/src/lend/components/InpToken.tsx +++ b/apps/main/src/lend/components/InpToken.tsx @@ -5,11 +5,11 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' -import { FieldsTitle } from '@lend/components/SharedFormStyles/FieldsWrapper' -import { StyledInpChip } from '@lend/components/PageLoanManage/styles' +import { FieldsTitle } from '@/lend/components/SharedFormStyles/FieldsWrapper' +import { StyledInpChip } from '@/lend/components/PageLoanManage/styles' import Box from '@ui/Box' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import InpChipUsdRate from '@lend/components/InpChipUsdRate' +import InpChipUsdRate from '@/lend/components/InpChipUsdRate' const InpToken = ({ id, diff --git a/apps/main/src/lend/components/InpTokenBorrow.tsx b/apps/main/src/lend/components/InpTokenBorrow.tsx index 286513d51..4226a36f3 100644 --- a/apps/main/src/lend/components/InpTokenBorrow.tsx +++ b/apps/main/src/lend/components/InpTokenBorrow.tsx @@ -5,11 +5,11 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' -import { FieldsTitle } from '@lend/components/SharedFormStyles/FieldsWrapper' -import { StyledInpChip } from '@lend/components/PageLoanManage/styles' +import { FieldsTitle } from '@/lend/components/SharedFormStyles/FieldsWrapper' +import { StyledInpChip } from '@/lend/components/PageLoanManage/styles' import Box from '@ui/Box' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import InpChipUsdRate from '@lend/components/InpChipUsdRate' +import InpChipUsdRate from '@/lend/components/InpChipUsdRate' const InpTokenBorrow = ({ id, diff --git a/apps/main/src/lend/components/InpTokenRemove.tsx b/apps/main/src/lend/components/InpTokenRemove.tsx index 6e326148a..513ceae97 100644 --- a/apps/main/src/lend/components/InpTokenRemove.tsx +++ b/apps/main/src/lend/components/InpTokenRemove.tsx @@ -5,10 +5,10 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' -import { StyledInpChip } from '@lend/components/PageLoanManage/styles' -import { FieldsTitle } from '@lend/components/SharedFormStyles/FieldsWrapper' +import { StyledInpChip } from '@/lend/components/PageLoanManage/styles' +import { FieldsTitle } from '@/lend/components/SharedFormStyles/FieldsWrapper' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import InpChipUsdRate from '@lend/components/InpChipUsdRate' +import InpChipUsdRate from '@/lend/components/InpChipUsdRate' import Box from '@ui/Box' diff --git a/apps/main/src/lend/components/LoanFormAlertWarning.tsx b/apps/main/src/lend/components/LoanFormAlertWarning.tsx index e06510cd0..3bfc0156a 100644 --- a/apps/main/src/lend/components/LoanFormAlertWarning.tsx +++ b/apps/main/src/lend/components/LoanFormAlertWarning.tsx @@ -4,7 +4,7 @@ import { t } from '@lingui/macro' import React, { useMemo } from 'react' import AlertBox from '@ui/AlertBox' -import { AlertType } from '@lend/types/lend.types' +import { AlertType } from '@/lend/types/lend.types' const ALERT_FORM_WARNING_KEYS = { 'warning-exchange-rate-low': 'warning-exchange-rate-low', diff --git a/apps/main/src/lend/components/LoanFormConnect.tsx b/apps/main/src/lend/components/LoanFormConnect.tsx index fbc544eb9..243be20fb 100644 --- a/apps/main/src/lend/components/LoanFormConnect.tsx +++ b/apps/main/src/lend/components/LoanFormConnect.tsx @@ -1,9 +1,9 @@ import { t } from '@lingui/macro' import React from 'react' -import { CONNECT_STAGE } from '@lend/constants' +import { CONNECT_STAGE } from '@/lend/constants' import { isLoading } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Button from '@ui/Button' import Spinner from '@ui/Spinner' diff --git a/apps/main/src/lend/components/Page404/Page.tsx b/apps/main/src/lend/components/Page404/Page.tsx index becfd3fed..a23d75e0d 100644 --- a/apps/main/src/lend/components/Page404/Page.tsx +++ b/apps/main/src/lend/components/Page404/Page.tsx @@ -2,7 +2,7 @@ import type { NextPage } from 'next' import { t } from '@lingui/macro' -import DocumentHead from '@lend/layout/DocumentHead' +import DocumentHead from '@/lend/layout/DocumentHead' import Error404 from '@ui/Error404' const Page: NextPage = () => ( diff --git a/apps/main/src/lend/components/PageDisclaimer/Page.tsx b/apps/main/src/lend/components/PageDisclaimer/Page.tsx index a83f6a498..05e083564 100644 --- a/apps/main/src/lend/components/PageDisclaimer/Page.tsx +++ b/apps/main/src/lend/components/PageDisclaimer/Page.tsx @@ -4,8 +4,8 @@ import { t } from '@lingui/macro' import Stack from '@mui/material/Stack' -import DocumentHead from '@lend/layout/DocumentHead' -import { scrollToTop } from '@lend/utils/helpers' +import DocumentHead from '@/lend/layout/DocumentHead' +import { scrollToTop } from '@/lend/utils/helpers' import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' import { Disclaimer } from '@ui-kit/widgets/Disclaimer' diff --git a/apps/main/src/lend/components/PageIntegrations/Page.tsx b/apps/main/src/lend/components/PageIntegrations/Page.tsx index fe9be0f0f..3b048438e 100644 --- a/apps/main/src/lend/components/PageIntegrations/Page.tsx +++ b/apps/main/src/lend/components/PageIntegrations/Page.tsx @@ -6,13 +6,13 @@ import { useLocation, useNavigate, useParams, useSearchParams } from 'react-rout import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { scrollToTop } from '@lend/utils/helpers' -import usePageOnMount from '@lend/hooks/usePageOnMount' -import useStore from '@lend/store/useStore' +import { scrollToTop } from '@/lend/utils/helpers' +import usePageOnMount from '@/lend/hooks/usePageOnMount' +import useStore from '@/lend/store/useStore' import { ExternalLink } from '@ui/Link' -import DocumentHead from '@lend/layout/DocumentHead' -import IntegrationsComp from '@lend/components/PageIntegrations/index' +import DocumentHead from '@/lend/layout/DocumentHead' +import IntegrationsComp from '@/lend/components/PageIntegrations/index' import Spinner, { SpinnerWrapper } from '@ui/Spinner' const Page: NextPage = () => { diff --git a/apps/main/src/lend/components/PageIntegrations/index.tsx b/apps/main/src/lend/components/PageIntegrations/index.tsx index 107ad4d9a..ae7271b40 100644 --- a/apps/main/src/lend/components/PageIntegrations/index.tsx +++ b/apps/main/src/lend/components/PageIntegrations/index.tsx @@ -1,4 +1,4 @@ -import type { FilterKey, FormValues } from '@lend/components/PageIntegrations/types' +import type { FilterKey, FormValues } from '@/lend/components/PageIntegrations/types' import type { IntegrationsTags } from '@ui/Integration/types' import type { NavigateFunction, Params } from 'react-router' @@ -7,19 +7,19 @@ import React, { useCallback, useEffect, useMemo } from 'react' import Image from 'next/image' import styled from 'styled-components' -import { ROUTE } from '@lend/constants' +import { ROUTE } from '@/lend/constants' import { breakpoints } from '@ui/utils' -import { getPath } from '@lend/utils/utilsRouter' +import { getPath } from '@/lend/utils/utilsRouter' import { useFocusRing } from '@react-aria/focus' -import networks, { networksIdMapper } from '@lend/networks' -import useStore from '@lend/store/useStore' +import networks, { networksIdMapper } from '@/lend/networks' +import useStore from '@/lend/store/useStore' import Box from '@ui/Box' import IntegrationAppComp from '@ui/Integration/IntegrationApp' import SearchInput from '@ui/SearchInput' import TableButtonFilters from '@ui/TableButtonFilters' import TableButtonFiltersMobile from '@ui/TableButtonFiltersMobile' -import { ChainId, NetworkEnum } from '@lend/types/lend.types' +import { ChainId, NetworkEnum } from '@/lend/types/lend.types' // Update integrations list repo: https://github.com/curvefi/curve-external-integrations const IntegrationsComp = ({ diff --git a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfo.tsx b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfo.tsx index 0069c05c8..485a34ebe 100644 --- a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfo.tsx +++ b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfo.tsx @@ -1,14 +1,14 @@ -import type { LiqRangeSliderIdx } from '@lend/store/types' -import type { DetailInfoCompAdditionalProps, DetailInfoCompProps } from '@lend/components/PageLoanCreate/types' +import type { LiqRangeSliderIdx } from '@/lend/store/types' +import type { DetailInfoCompAdditionalProps, DetailInfoCompProps } from '@/lend/components/PageLoanCreate/types' import React, { useMemo } from 'react' import { getActiveStep } from '@ui/Stepper/helpers' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import DetailInfoNonLeverage from '@lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage' -import DetailInfoLeverage from '@lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage' -import { PageContentProps } from '@lend/types/lend.types' +import DetailInfoNonLeverage from '@/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage' +import DetailInfoLeverage from '@/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage' +import { PageContentProps } from '@/lend/types/lend.types' const DetailInfoComp = ({ isLeverage, ...props }: PageContentProps & DetailInfoCompProps & { isLeverage: boolean }) => { const { api, market, steps, updateFormValues } = props diff --git a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage.tsx b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage.tsx index f4b2fccfa..fdaaf8831 100644 --- a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage.tsx +++ b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage.tsx @@ -1,26 +1,26 @@ -import type { DetailInfoCompProps, DetailInfoCompAdditionalProps } from '@lend/components/PageLoanCreate/types' +import type { DetailInfoCompProps, DetailInfoCompAdditionalProps } from '@/lend/components/PageLoanCreate/types' import React from 'react' import { t } from '@lingui/macro' -import { _parseValue } from '@lend/components/PageLoanCreate/utils' -import useStore from '@lend/store/useStore' +import { _parseValue } from '@/lend/components/PageLoanCreate/utils' +import useStore from '@/lend/store/useStore' -import DetailInfoEstGas from '@lend/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@lend/components/DetailInfoHealth' -import DetailInfoLiqRange from '@lend/components/DetailInfoLiqRange' -import DetailInfoLiqRangeEdit from '@lend/components/DetailInfoLiqRangeEdit' -import DetailInfoN from '@lend/components/DetailInfoN' -import DetailInfoSlippageTolerance from '@lend/components/DetailInfoSlippageTolerance' -import DetailInfoRate from '@lend/components/DetailInfoRate' -import DetailInfoLeverageX from '@lend/components/DetailInfoLeverageX' +import DetailInfoEstGas from '@/lend/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/lend/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/lend/components/DetailInfoLiqRange' +import DetailInfoLiqRangeEdit from '@/lend/components/DetailInfoLiqRangeEdit' +import DetailInfoN from '@/lend/components/DetailInfoN' +import DetailInfoSlippageTolerance from '@/lend/components/DetailInfoSlippageTolerance' +import DetailInfoRate from '@/lend/components/DetailInfoRate' +import DetailInfoLeverageX from '@/lend/components/DetailInfoLeverageX' import DetailInfoLeverageExpected from '@/lend/components/DetailInfoLeverageExpected' import DetailInfoLeverageAdvancedExpected from '@/lend/components/DetailInfoLeverageAdvancedExpected' -import DetailInfoLeverageAvgPrice from '@lend/components/DetailInfoLeverageAvgPrice' -import DetailInfoLTV from '@lend/components/DetailInfoLTV' -import DetailInfoPriceImpact from '@lend/components/DetailInfoPriceImpact' +import DetailInfoLeverageAvgPrice from '@/lend/components/DetailInfoLeverageAvgPrice' +import DetailInfoLTV from '@/lend/components/DetailInfoLTV' +import DetailInfoPriceImpact from '@/lend/components/DetailInfoPriceImpact' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { PageContentProps } from '@lend/types/lend.types' +import { PageContentProps } from '@/lend/types/lend.types' const DetailInfoLeverage = ({ activeStep, diff --git a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage.tsx b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage.tsx index 195a80750..0481a645e 100644 --- a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage.tsx +++ b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage.tsx @@ -1,18 +1,18 @@ -import type { DetailInfoCompProps, DetailInfoCompAdditionalProps } from '@lend/components/PageLoanCreate/types' +import type { DetailInfoCompProps, DetailInfoCompAdditionalProps } from '@/lend/components/PageLoanCreate/types' import React from 'react' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import DetailInfoRate from '@lend/components/DetailInfoRate' -import DetailInfoEstGas from '@lend/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@lend/components/DetailInfoHealth' -import DetailInfoLiqRange from '@lend/components/DetailInfoLiqRange' -import DetailInfoLiqRangeEdit from '@lend/components/DetailInfoLiqRangeEdit' -import DetailInfoLTV from '@lend/components/DetailInfoLTV' -import DetailInfoN from '@lend/components/DetailInfoN' +import DetailInfoRate from '@/lend/components/DetailInfoRate' +import DetailInfoEstGas from '@/lend/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/lend/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/lend/components/DetailInfoLiqRange' +import DetailInfoLiqRangeEdit from '@/lend/components/DetailInfoLiqRangeEdit' +import DetailInfoLTV from '@/lend/components/DetailInfoLTV' +import DetailInfoN from '@/lend/components/DetailInfoN' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { PageContentProps } from '@lend/types/lend.types' +import { PageContentProps } from '@/lend/types/lend.types' const DetailInfoNonLeverage = ({ activeStep, diff --git a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning.tsx b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning.tsx index 0216e392e..15ba3d62b 100644 --- a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning.tsx +++ b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning.tsx @@ -5,7 +5,7 @@ import styled from 'styled-components' import AlertBox from '@ui/AlertBox' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' -import { HealthMode } from '@lend/types/lend.types' +import { HealthMode } from '@/lend/types/lend.types' function DialogHealthLeverageWarning({ confirmed, diff --git a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/index.tsx b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/index.tsx index 816f9452d..5aee991df 100644 --- a/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/index.tsx +++ b/apps/main/src/lend/components/PageLoanCreate/LoanFormCreate/index.tsx @@ -1,41 +1,41 @@ -import type { FormEstGas, FormStatus, FormValues, StepKey } from '@lend/components/PageLoanCreate/types' +import type { FormEstGas, FormStatus, FormValues, StepKey } from '@/lend/components/PageLoanCreate/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' -import { DEFAULT_CONFIRM_WARNING, DEFAULT_HEALTH_MODE } from '@lend/components/PageLoanManage/utils' -import { NOFITY_MESSAGE, REFRESH_INTERVAL } from '@lend/constants' +import { DEFAULT_CONFIRM_WARNING, DEFAULT_HEALTH_MODE } from '@/lend/components/PageLoanManage/utils' +import { NOFITY_MESSAGE, REFRESH_INTERVAL } from '@/lend/constants' import { formatNumber } from '@ui/utils' -import { getLoanManagePathname } from '@lend/utils/utilsRouter' -import { helpers } from '@lend/lib/apiLending' -import { _parseValue, DEFAULT_FORM_VALUES } from '@lend/components/PageLoanCreate/utils' +import { getLoanManagePathname } from '@/lend/utils/utilsRouter' +import { helpers } from '@/lend/lib/apiLending' +import { _parseValue, DEFAULT_FORM_VALUES } from '@/lend/components/PageLoanCreate/utils' import { useNavigate, useParams } from 'react-router-dom' -import networks from '@lend/networks' -import useMarketAlert from '@lend/hooks/useMarketAlert' +import networks from '@/lend/networks' +import useMarketAlert from '@/lend/hooks/useMarketAlert' import usePageVisibleInterval from '@ui/hooks/usePageVisibleInterval' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { FieldsWrapper } from '@lend/components/SharedFormStyles/FieldsWrapper' +import { FieldsWrapper } from '@/lend/components/SharedFormStyles/FieldsWrapper' import Accordion from '@ui/Accordion' import AlertBox from '@ui/AlertBox' -import AlertLoanSummary from '@lend/components/AlertLoanSummary' -import AlertFormError from '@lend/components/AlertFormError' +import AlertLoanSummary from '@/lend/components/AlertLoanSummary' +import AlertFormError from '@/lend/components/AlertFormError' import Box from '@ui/Box' import Button from '@ui/Button' -import DetailInfo from '@lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfo' -import DialogFormWarning from '@lend/components/DialogFormWarning' -import InpToken from '@lend/components/InpToken' -import InpTokenBorrow from '@lend/components/InpTokenBorrow' +import DetailInfo from '@/lend/components/PageLoanCreate/LoanFormCreate/components/DetailInfo' +import DialogFormWarning from '@/lend/components/DialogFormWarning' +import InpToken from '@/lend/components/InpToken' +import InpTokenBorrow from '@/lend/components/InpTokenBorrow' import LinkButton from '@ui/LinkButton' -import LoanFormConnect from '@lend/components/LoanFormConnect' -import MarketParameters from '@lend/components/DetailsMarket/components/MarketParameters' +import LoanFormConnect from '@/lend/components/LoanFormConnect' +import MarketParameters from '@/lend/components/DetailsMarket/components/MarketParameters' import Stepper from '@ui/Stepper' import TextCaption from '@ui/TextCaption' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps, HealthMode } from '@lend/types/lend.types' +import { Api, PageContentProps, HealthMode } from '@/lend/types/lend.types' const LoanCreate = ({ isLeverage = false, ...pageProps }: PageContentProps & { isLeverage?: boolean }) => { const { rChainId, rOwmId, isLoaded, api, market, userActiveKey } = pageProps diff --git a/apps/main/src/lend/components/PageLoanCreate/Page.tsx b/apps/main/src/lend/components/PageLoanCreate/Page.tsx index aa6047e12..bcae278af 100644 --- a/apps/main/src/lend/components/PageLoanCreate/Page.tsx +++ b/apps/main/src/lend/components/PageLoanCreate/Page.tsx @@ -4,13 +4,13 @@ import React, { useCallback, useEffect, useState } from 'react' import { useLocation, useNavigate, useParams } from 'react-router-dom' import { t } from '@lingui/macro' -import { REFRESH_INTERVAL } from '@lend/constants' -import { helpers } from '@lend/lib/apiLending' -import { scrollToTop } from '@lend/utils/helpers' -import networks from '@lend/networks' -import usePageOnMount from '@lend/hooks/usePageOnMount' -import useStore from '@lend/store/useStore' -import useTitleMapper from '@lend/hooks/useTitleMapper' +import { REFRESH_INTERVAL } from '@/lend/constants' +import { helpers } from '@/lend/lib/apiLending' +import { scrollToTop } from '@/lend/utils/helpers' +import networks from '@/lend/networks' +import usePageOnMount from '@/lend/hooks/usePageOnMount' +import useStore from '@/lend/store/useStore' +import useTitleMapper from '@/lend/hooks/useTitleMapper' import { AppPageFormContainer, @@ -20,11 +20,11 @@ import { AppPageInfoContentWrapper, AppPageInfoWrapper, } from '@ui/AppPage' -import DocumentHead from '@lend/layout/DocumentHead' -import LoanCreate from '@lend/components/PageLoanCreate/index' -import DetailsMarket from '@lend/components/DetailsMarket' -import PageTitleBorrowSupplyLinks from '@lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks' -import ChartOhlcWrapper from '@lend/components/ChartOhlcWrapper' +import DocumentHead from '@/lend/layout/DocumentHead' +import LoanCreate from '@/lend/components/PageLoanCreate/index' +import DetailsMarket from '@/lend/components/DetailsMarket' +import PageTitleBorrowSupplyLinks from '@/lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks' +import ChartOhlcWrapper from '@/lend/components/ChartOhlcWrapper' import { ExpandButton, ExpandIcon, @@ -32,12 +32,12 @@ import { PriceAndTradesExpandedWrapper, } from '@ui/Chart/styles' import Box from '@ui/Box' -import CampaignRewardsBanner from '@lend/components/CampaignRewardsBanner' -import ConnectWallet from '@lend/components/ConnectWallet' +import CampaignRewardsBanner from '@/lend/components/CampaignRewardsBanner' +import ConnectWallet from '@/lend/components/ConnectWallet' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { useOneWayMarket } from '@lend/entities/chain' +import { useOneWayMarket } from '@/lend/entities/chain' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps } from '@lend/types/lend.types' +import { Api, PageContentProps } from '@/lend/types/lend.types' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/lend/components/PageLoanCreate/index.tsx b/apps/main/src/lend/components/PageLoanCreate/index.tsx index 51a967be7..4633e1ed8 100644 --- a/apps/main/src/lend/components/PageLoanCreate/index.tsx +++ b/apps/main/src/lend/components/PageLoanCreate/index.tsx @@ -1,15 +1,15 @@ -import type { FormType } from '@lend/components/PageLoanCreate/types' +import type { FormType } from '@/lend/components/PageLoanCreate/types' import { useMemo, useEffect } from 'react' import { t } from '@lingui/macro' import { useNavigate, useParams } from 'react-router-dom' -import { getLoanCreatePathname } from '@lend/utils/utilsRouter' -import useStore from '@lend/store/useStore' +import { getLoanCreatePathname } from '@/lend/utils/utilsRouter' +import useStore from '@/lend/store/useStore' import { AppFormContent, AppFormContentWrapper, AppFormHeader } from '@ui/AppForm' -import LoanFormCreate from '@lend/components/PageLoanCreate/LoanFormCreate' -import { PageContentProps } from '@lend/types/lend.types' +import LoanFormCreate from '@/lend/components/PageLoanCreate/LoanFormCreate' +import { PageContentProps } from '@/lend/types/lend.types' const LoanCreate = (pageProps: PageContentProps) => { const { rChainId, rOwmId, rFormType, market } = pageProps diff --git a/apps/main/src/lend/components/PageLoanCreate/types.ts b/apps/main/src/lend/components/PageLoanCreate/types.ts index 29568a8b9..fbc1f5614 100644 --- a/apps/main/src/lend/components/PageLoanCreate/types.ts +++ b/apps/main/src/lend/components/PageLoanCreate/types.ts @@ -1,9 +1,9 @@ import React from 'react' -import type { LiqRangeSliderIdx } from '@lend/store/types' -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' +import type { LiqRangeSliderIdx } from '@/lend/store/types' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { DetailInfoResp, DetailInfoLeverageResp, ExpectedCollateral, HealthMode } from '@lend/types/lend.types' +import { DetailInfoResp, DetailInfoLeverageResp, ExpectedCollateral, HealthMode } from '@/lend/types/lend.types' export type FormType = 'create' | 'vault' | 'leverage' export type StepKey = 'APPROVAL' | 'CREATE' | '' diff --git a/apps/main/src/lend/components/PageLoanCreate/utils.ts b/apps/main/src/lend/components/PageLoanCreate/utils.ts index feb256c6c..ab927782e 100644 --- a/apps/main/src/lend/components/PageLoanCreate/utils.ts +++ b/apps/main/src/lend/components/PageLoanCreate/utils.ts @@ -1,7 +1,7 @@ -import type { FormStatus, FormValues } from '@lend/components/PageLoanCreate/types' +import type { FormStatus, FormValues } from '@/lend/components/PageLoanCreate/types' -import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' -import { _parseStepTokensList } from '@lend/utils/helpers' +import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' +import { _parseStepTokensList } from '@/lend/utils/helpers' import type { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' export const DEFAULT_FORM_STATUS: FormStatus = { diff --git a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfo.tsx b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfo.tsx index 420a3b8c4..402196994 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfo.tsx +++ b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfo.tsx @@ -1,14 +1,14 @@ import type { Step } from '@ui/Stepper/types' import React from 'react' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import DetailInfoLiqRange from '@lend/components/DetailInfoLiqRange' -import DetailInfoHealth from '@lend/components/DetailInfoHealth' -import DetailInfoRate from '@lend/components/DetailInfoRate' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' +import DetailInfoLiqRange from '@/lend/components/DetailInfoLiqRange' +import DetailInfoHealth from '@/lend/components/DetailInfoHealth' +import DetailInfoRate from '@/lend/components/DetailInfoRate' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { PageContentProps, HealthMode } from '@lend/types/lend.types' +import { PageContentProps, HealthMode } from '@/lend/types/lend.types' const DetailInfo = ({ rChainId, diff --git a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfoLeverage.tsx b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfoLeverage.tsx index ea8ac824a..add23550c 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfoLeverage.tsx +++ b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfoLeverage.tsx @@ -3,20 +3,20 @@ import type { Step } from '@ui/Stepper/types' import React from 'react' import { t } from '@lingui/macro' -import { _parseValues } from '@lend/components/PageLoanManage/LoanBorrowMore/utils' -import useStore from '@lend/store/useStore' +import { _parseValues } from '@/lend/components/PageLoanManage/LoanBorrowMore/utils' +import useStore from '@/lend/store/useStore' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@lend/components/DetailInfoHealth' -import DetailInfoLeverageAdvancedExpected from '@lend/components/DetailInfoLeverageAdvancedExpected' -import DetailInfoLeverageAvgPrice from '@lend/components/DetailInfoLeverageAvgPrice' -import DetailInfoLeverageExpected from '@lend/components/DetailInfoLeverageExpected' -import DetailInfoLiqRange from '@lend/components/DetailInfoLiqRange' -import DetailInfoPriceImpact from '@lend/components/DetailInfoPriceImpact' -import DetailInfoRate from '@lend/components/DetailInfoRate' -import DetailInfoSlippageTolerance from '@lend/components/DetailInfoSlippageTolerance' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/lend/components/DetailInfoHealth' +import DetailInfoLeverageAdvancedExpected from '@/lend/components/DetailInfoLeverageAdvancedExpected' +import DetailInfoLeverageAvgPrice from '@/lend/components/DetailInfoLeverageAvgPrice' +import DetailInfoLeverageExpected from '@/lend/components/DetailInfoLeverageExpected' +import DetailInfoLiqRange from '@/lend/components/DetailInfoLiqRange' +import DetailInfoPriceImpact from '@/lend/components/DetailInfoPriceImpact' +import DetailInfoRate from '@/lend/components/DetailInfoRate' +import DetailInfoSlippageTolerance from '@/lend/components/DetailInfoSlippageTolerance' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { PageContentProps, HealthMode } from '@lend/types/lend.types' +import { PageContentProps, HealthMode } from '@/lend/types/lend.types' const DetailInfoLeverage = ({ rChainId, diff --git a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/index.tsx b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/index.tsx index ffffef420..091624e97 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/index.tsx +++ b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/index.tsx @@ -1,38 +1,38 @@ -import type { FormStatus, FormValues, StepKey } from '@lend/components/PageLoanManage/LoanBorrowMore/types' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' +import type { FormStatus, FormValues, StepKey } from '@/lend/components/PageLoanManage/LoanBorrowMore/types' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' -import { DEFAULT_CONFIRM_WARNING, DEFAULT_HEALTH_MODE } from '@lend/components/PageLoanManage/utils' -import { NOFITY_MESSAGE, REFRESH_INTERVAL } from '@lend/constants' -import { _showNoLoanFound } from '@lend/utils/helpers' +import { DEFAULT_CONFIRM_WARNING, DEFAULT_HEALTH_MODE } from '@/lend/components/PageLoanManage/utils' +import { NOFITY_MESSAGE, REFRESH_INTERVAL } from '@/lend/constants' +import { _showNoLoanFound } from '@/lend/utils/helpers' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' import usePageVisibleInterval from '@ui/hooks/usePageVisibleInterval' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { _parseValues, DEFAULT_FORM_VALUES } from '@lend/components/PageLoanManage/LoanBorrowMore/utils' -import { FieldsWrapper } from '@lend/components/SharedFormStyles/FieldsWrapper' -import { StyledDetailInfoWrapper } from '@lend/components/PageLoanManage/styles' +import { _parseValues, DEFAULT_FORM_VALUES } from '@/lend/components/PageLoanManage/LoanBorrowMore/utils' +import { FieldsWrapper } from '@/lend/components/SharedFormStyles/FieldsWrapper' +import { StyledDetailInfoWrapper } from '@/lend/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@lend/components/AlertFormError' -import AlertNoLoanFound from '@lend/components/AlertNoLoanFound' -import AlertLoanSummary from '@lend/components/AlertLoanSummary' -import DetailInfo from '@lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfo' -import DetailInfoLeverage from '@lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfoLeverage' -import DialogFormWarning from '@lend/components/DialogFormWarning' -import InpToken from '@lend/components/InpToken' -import InpTokenBorrow from '@lend/components/InpTokenBorrow' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import AlertFormError from '@/lend/components/AlertFormError' +import AlertNoLoanFound from '@/lend/components/AlertNoLoanFound' +import AlertLoanSummary from '@/lend/components/AlertLoanSummary' +import DetailInfo from '@/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfo' +import DetailInfoLeverage from '@/lend/components/PageLoanManage/LoanBorrowMore/components/DetailInfoLeverage' +import DialogFormWarning from '@/lend/components/DialogFormWarning' +import InpToken from '@/lend/components/InpToken' +import InpTokenBorrow from '@/lend/components/InpTokenBorrow' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps, HealthMode } from '@lend/types/lend.types' +import { Api, PageContentProps, HealthMode } from '@/lend/types/lend.types' const LoanBorrowMore = ({ rChainId, diff --git a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/types.ts b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/types.ts index fca8c232a..745d430d9 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/types.ts +++ b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/types.ts @@ -1,6 +1,6 @@ -import type { FormDetailInfo, FormStatus as Fs } from '@lend/components/PageLoanManage/types' -import type { InpError } from '@lend/components/PageLoanCreate/types' -import { ExpectedCollateral } from '@lend/types/lend.types' +import type { FormDetailInfo, FormStatus as Fs } from '@/lend/components/PageLoanManage/types' +import type { InpError } from '@/lend/components/PageLoanCreate/types' +import { ExpectedCollateral } from '@/lend/types/lend.types' export type FormValues = { userCollateral: string diff --git a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/utils.ts b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/utils.ts index 46c5fb96a..2fa839712 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/utils.ts +++ b/apps/main/src/lend/components/PageLoanManage/LoanBorrowMore/utils.ts @@ -1,6 +1,6 @@ -import { FormStatus, FormValues } from '@lend/components/PageLoanManage/LoanBorrowMore/types' -import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' -import { _parseStepTokensList } from '@lend/utils/helpers' +import { FormStatus, FormValues } from '@/lend/components/PageLoanManage/LoanBorrowMore/types' +import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' +import { _parseStepTokensList } from '@/lend/utils/helpers' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' export const DEFAULT_FORM_STATUS: FormStatus = { diff --git a/apps/main/src/lend/components/PageLoanManage/LoanCollateralAdd/index.tsx b/apps/main/src/lend/components/PageLoanManage/LoanCollateralAdd/index.tsx index 81b3fe569..2e2941f51 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanCollateralAdd/index.tsx +++ b/apps/main/src/lend/components/PageLoanManage/LoanCollateralAdd/index.tsx @@ -1,35 +1,35 @@ -import type { FormStatus, FormValues, StepKey } from '@lend/components/PageLoanManage/LoanCollateralAdd/types' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' +import type { FormStatus, FormValues, StepKey } from '@/lend/components/PageLoanManage/LoanCollateralAdd/types' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useEffect, useRef, useState } from 'react' import { t } from '@lingui/macro' -import { DEFAULT_HEALTH_MODE } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_VALUES } from '@lend/store/createLoanCollateralAddSlice' -import { NOFITY_MESSAGE } from '@lend/constants' -import { _showNoLoanFound } from '@lend/utils/helpers' +import { DEFAULT_HEALTH_MODE } from '@/lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_VALUES } from '@/lend/store/createLoanCollateralAddSlice' +import { NOFITY_MESSAGE } from '@/lend/constants' +import { _showNoLoanFound } from '@/lend/utils/helpers' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' -import { StyledDetailInfoWrapper } from '@lend/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper } from '@/lend/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@lend/components/AlertFormError' -import AlertNoLoanFound from '@lend/components/AlertNoLoanFound' -import AlertSummary from '@lend/components/AlertLoanSummary' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@lend/components/DetailInfoHealth' -import DetailInfoLiqRange from '@lend/components/DetailInfoLiqRange' -import InpToken from '@lend/components/InpToken' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import AlertFormError from '@/lend/components/AlertFormError' +import AlertNoLoanFound from '@/lend/components/AlertNoLoanFound' +import AlertSummary from '@/lend/components/AlertLoanSummary' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/lend/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/lend/components/DetailInfoLiqRange' +import InpToken from '@/lend/components/InpToken' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps } from '@lend/types/lend.types' +import { Api, PageContentProps } from '@/lend/types/lend.types' const LoanCollateralAdd = ({ rChainId, rOwmId, api, isLoaded, market, userActiveKey }: PageContentProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/lend/components/PageLoanManage/LoanCollateralAdd/types.ts b/apps/main/src/lend/components/PageLoanManage/LoanCollateralAdd/types.ts index 57fb57d60..de9878c13 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanCollateralAdd/types.ts +++ b/apps/main/src/lend/components/PageLoanManage/LoanCollateralAdd/types.ts @@ -1,4 +1,4 @@ -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' export type FormValues = { collateral: string diff --git a/apps/main/src/lend/components/PageLoanManage/LoanCollateralRemove/index.tsx b/apps/main/src/lend/components/PageLoanManage/LoanCollateralRemove/index.tsx index e25918fba..b5eab8e4d 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanCollateralRemove/index.tsx +++ b/apps/main/src/lend/components/PageLoanManage/LoanCollateralRemove/index.tsx @@ -1,36 +1,36 @@ -import type { FormStatus, FormValues, StepKey } from '@lend/components/PageLoanManage/LoanCollateralRemove/types' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' +import type { FormStatus, FormValues, StepKey } from '@/lend/components/PageLoanManage/LoanCollateralRemove/types' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' -import { DEFAULT_CONFIRM_WARNING, DEFAULT_HEALTH_MODE } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_VALUES } from '@lend/store/createLoanCollateralRemoveSlice' -import { NOFITY_MESSAGE } from '@lend/constants' -import { _showNoLoanFound } from '@lend/utils/helpers' +import { DEFAULT_CONFIRM_WARNING, DEFAULT_HEALTH_MODE } from '@/lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_VALUES } from '@/lend/store/createLoanCollateralRemoveSlice' +import { NOFITY_MESSAGE } from '@/lend/constants' +import { _showNoLoanFound } from '@/lend/utils/helpers' import { getActiveStep } from '@ui/Stepper/helpers' import { formatNumber } from '@ui/utils' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' -import { StyledDetailInfoWrapper } from '@lend/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper } from '@/lend/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@lend/components/AlertFormError' -import AlertNoLoanFound from '@lend/components/AlertNoLoanFound' -import AlertSummary from '@lend/components/AlertLoanSummary' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@lend/components/DetailInfoHealth' -import DetailInfoLiqRange from '@lend/components/DetailInfoLiqRange' -import DialogFormWarning from '@lend/components/DialogFormWarning' -import InpTokenRemove from '@lend/components/InpTokenRemove' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import AlertFormError from '@/lend/components/AlertFormError' +import AlertNoLoanFound from '@/lend/components/AlertNoLoanFound' +import AlertSummary from '@/lend/components/AlertLoanSummary' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/lend/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/lend/components/DetailInfoLiqRange' +import DialogFormWarning from '@/lend/components/DialogFormWarning' +import InpTokenRemove from '@/lend/components/InpTokenRemove' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps, HealthMode } from '@lend/types/lend.types' +import { Api, PageContentProps, HealthMode } from '@/lend/types/lend.types' const LoanCollateralRemove = ({ rChainId, rOwmId, isLoaded, api, market, userActiveKey }: PageContentProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/lend/components/PageLoanManage/LoanCollateralRemove/types.ts b/apps/main/src/lend/components/PageLoanManage/LoanCollateralRemove/types.ts index 735e0b558..4810c01f4 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanCollateralRemove/types.ts +++ b/apps/main/src/lend/components/PageLoanManage/LoanCollateralRemove/types.ts @@ -1,5 +1,5 @@ -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' -import type { InpError } from '@lend/components/PageLoanCreate/types' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' +import type { InpError } from '@/lend/components/PageLoanCreate/types' export type FormValues = { collateral: string diff --git a/apps/main/src/lend/components/PageLoanManage/LoanRepay/components/DetailInfo.tsx b/apps/main/src/lend/components/PageLoanManage/LoanRepay/components/DetailInfo.tsx index 06b43a543..876aea5c3 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanRepay/components/DetailInfo.tsx +++ b/apps/main/src/lend/components/PageLoanManage/LoanRepay/components/DetailInfo.tsx @@ -1,23 +1,23 @@ -import type { FormDetailInfo } from '@lend/components/PageLoanManage/types' -import type { DetailProps, FormDetailInfoLeverage } from '@lend/components/PageLoanManage/LoanRepay/types' +import type { FormDetailInfo } from '@/lend/components/PageLoanManage/types' +import type { DetailProps, FormDetailInfoLeverage } from '@/lend/components/PageLoanManage/LoanRepay/types' import React from 'react' import { t } from '@lingui/macro' -import useStore from '@lend/store/useStore' -import { _parseValues } from '@lend/components/PageLoanManage/LoanRepay/utils' +import useStore from '@/lend/store/useStore' +import { _parseValues } from '@/lend/components/PageLoanManage/LoanRepay/utils' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@lend/components/DetailInfoHealth' -import DetailInfoLiqRange from '@lend/components/DetailInfoLiqRange' -import DetailInfoLeverageAdvancedExpected from '@lend/components/DetailInfoLeverageAdvancedExpected' -import DetailInfoLeverageAvgPrice from '@lend/components/DetailInfoLeverageAvgPrice' -import DetailInfoLeverageExpected from '@lend/components/DetailInfoLeverageExpected' -import DetailInfoPriceImpact from '@lend/components/DetailInfoPriceImpact' -import DetailInfoRate from '@lend/components/DetailInfoRate' -import DetailInfoSlippageTolerance from '@lend/components/DetailInfoSlippageTolerance' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/lend/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/lend/components/DetailInfoLiqRange' +import DetailInfoLeverageAdvancedExpected from '@/lend/components/DetailInfoLeverageAdvancedExpected' +import DetailInfoLeverageAvgPrice from '@/lend/components/DetailInfoLeverageAvgPrice' +import DetailInfoLeverageExpected from '@/lend/components/DetailInfoLeverageExpected' +import DetailInfoPriceImpact from '@/lend/components/DetailInfoPriceImpact' +import DetailInfoRate from '@/lend/components/DetailInfoRate' +import DetailInfoSlippageTolerance from '@/lend/components/DetailInfoSlippageTolerance' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { PageContentProps } from '@lend/types/lend.types' +import { PageContentProps } from '@/lend/types/lend.types' const DetailInfo = ({ rChainId, diff --git a/apps/main/src/lend/components/PageLoanManage/LoanRepay/index.tsx b/apps/main/src/lend/components/PageLoanManage/LoanRepay/index.tsx index cba7aa0ac..a0d69624a 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanRepay/index.tsx +++ b/apps/main/src/lend/components/PageLoanManage/LoanRepay/index.tsx @@ -1,41 +1,41 @@ -import type { FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormValues, FormStatus, StepKey } from '@lend/components/PageLoanManage/LoanRepay/types' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormValues, FormStatus, StepKey } from '@/lend/components/PageLoanManage/LoanRepay/types' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { t } from '@lingui/macro' import { useNavigate, useParams } from 'react-router-dom' -import { DEFAULT_CONFIRM_WARNING, DEFAULT_HEALTH_MODE } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_VALUES, _parseValues } from '@lend/components/PageLoanManage/LoanRepay/utils' -import { NOFITY_MESSAGE, REFRESH_INTERVAL } from '@lend/constants' -import { _showNoLoanFound } from '@lend/utils/helpers' +import { DEFAULT_CONFIRM_WARNING, DEFAULT_HEALTH_MODE } from '@/lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_VALUES, _parseValues } from '@/lend/components/PageLoanManage/LoanRepay/utils' +import { NOFITY_MESSAGE, REFRESH_INTERVAL } from '@/lend/constants' +import { _showNoLoanFound } from '@/lend/utils/helpers' import { getPercentage, isGreaterThan, isGreaterThanOrEqualTo, sum } from '@ui-kit/utils' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { getCollateralListPathname } from '@lend/utils/utilsRouter' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' +import { getCollateralListPathname } from '@/lend/utils/utilsRouter' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' import usePageVisibleInterval from '@ui/hooks/usePageVisibleInterval' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { FieldsWrapper } from '@lend/components/SharedFormStyles/FieldsWrapper' -import { StyledDetailInfoWrapper, StyledInpChip } from '@lend/components/PageLoanManage/styles' +import { FieldsWrapper } from '@/lend/components/SharedFormStyles/FieldsWrapper' +import { StyledDetailInfoWrapper, StyledInpChip } from '@/lend/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError, { FormError } from '@lend/components/AlertFormError' -import AlertNoLoanFound from '@lend/components/AlertNoLoanFound' -import AlertSummary from '@lend/components/AlertLoanSummary' +import AlertFormError, { FormError } from '@/lend/components/AlertFormError' +import AlertNoLoanFound from '@/lend/components/AlertNoLoanFound' +import AlertSummary from '@/lend/components/AlertLoanSummary' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' -import DetailInfo from '@lend/components/PageLoanManage/LoanRepay/components/DetailInfo' -import DialogFormWarning from '@lend/components/DialogFormWarning' -import InpToken from '@lend/components/InpToken' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import DetailInfo from '@/lend/components/PageLoanManage/LoanRepay/components/DetailInfo' +import DialogFormWarning from '@/lend/components/DialogFormWarning' +import InpToken from '@/lend/components/InpToken' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps, HealthMode } from '@lend/types/lend.types' +import { Api, PageContentProps, HealthMode } from '@/lend/types/lend.types' const LoanRepay = ({ rChainId, rOwmId, isLoaded, api, market, userActiveKey }: PageContentProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/lend/components/PageLoanManage/LoanRepay/types.ts b/apps/main/src/lend/components/PageLoanManage/LoanRepay/types.ts index d0d01da5e..1c1a0ae82 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanRepay/types.ts +++ b/apps/main/src/lend/components/PageLoanManage/LoanRepay/types.ts @@ -1,8 +1,8 @@ -import type { FormDetailInfo, FormStatus as Fs } from '@lend/components/PageLoanManage/types' -import type { InpError } from '@lend/components/PageLoanCreate/types' +import type { FormDetailInfo, FormStatus as Fs } from '@/lend/components/PageLoanManage/types' +import type { InpError } from '@/lend/components/PageLoanCreate/types' import type { Step } from '@ui/Stepper/types' import React from 'react' -import { ExpectedBorrowed, PageContentProps, HealthMode } from '@lend/types/lend.types' +import { ExpectedBorrowed, PageContentProps, HealthMode } from '@/lend/types/lend.types' export type FormValues = { stateCollateral: string diff --git a/apps/main/src/lend/components/PageLoanManage/LoanRepay/utils.ts b/apps/main/src/lend/components/PageLoanManage/LoanRepay/utils.ts index 387d33715..c0d6de61e 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanRepay/utils.ts +++ b/apps/main/src/lend/components/PageLoanManage/LoanRepay/utils.ts @@ -1,6 +1,6 @@ -import type { FormStatus, FormValues } from '@lend/components/PageLoanManage/LoanRepay/types' +import type { FormStatus, FormValues } from '@/lend/components/PageLoanManage/LoanRepay/types' -import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' import type { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' export const DEFAULT_FORM_STATUS: FormStatus = { diff --git a/apps/main/src/lend/components/PageLoanManage/LoanSelfLiquidation/index.tsx b/apps/main/src/lend/components/PageLoanManage/LoanSelfLiquidation/index.tsx index 661eb8256..b362eab0d 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanSelfLiquidation/index.tsx +++ b/apps/main/src/lend/components/PageLoanManage/LoanSelfLiquidation/index.tsx @@ -1,5 +1,5 @@ -import type { FormStatus, StepKey } from '@lend/components/PageLoanManage/LoanSelfLiquidation/types' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' +import type { FormStatus, StepKey } from '@/lend/components/PageLoanManage/LoanSelfLiquidation/types' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useEffect, useRef, useState } from 'react' @@ -7,31 +7,31 @@ import { t, Trans } from '@lingui/macro' import { useParams } from 'react-router-dom' import styled from 'styled-components' -import { NOFITY_MESSAGE } from '@lend/constants' -import { _showNoLoanFound } from '@lend/utils/helpers' +import { NOFITY_MESSAGE } from '@/lend/constants' +import { _showNoLoanFound } from '@/lend/utils/helpers' import { getActiveStep } from '@ui/Stepper/helpers' -import { getCollateralListPathname } from '@lend/utils/utilsRouter' +import { getCollateralListPathname } from '@/lend/utils/utilsRouter' import { formatNumber } from '@ui/utils' -import { helpers } from '@lend/lib/apiLending' -import useStore from '@lend/store/useStore' -import networks from '@lend/networks' +import { helpers } from '@/lend/lib/apiLending' +import useStore from '@/lend/store/useStore' +import networks from '@/lend/networks' import AlertBox from '@ui/AlertBox' -import AlertFormWarning from '@lend/components/AlertFormWarning' -import AlertFormError from '@lend/components/AlertFormError' -import AlertNoLoanFound from '@lend/components/AlertNoLoanFound' -import AlertSummary from '@lend/components/AlertLoanSummary' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' -import DetailInfoSlippageTolerance from '@lend/components/DetailInfoSlippageTolerance' -import DetailInfoRate from '@lend/components/DetailInfoRate' +import AlertFormWarning from '@/lend/components/AlertFormWarning' +import AlertFormError from '@/lend/components/AlertFormError' +import AlertNoLoanFound from '@/lend/components/AlertNoLoanFound' +import AlertSummary from '@/lend/components/AlertLoanSummary' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' +import DetailInfoSlippageTolerance from '@/lend/components/DetailInfoSlippageTolerance' +import DetailInfoRate from '@/lend/components/DetailInfoRate' import InputReadOnly from '@ui/InputReadOnly' import InternalLink from '@ui/Link/InternalLink' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps, UserLoanState } from '@lend/types/lend.types' +import { Api, PageContentProps, UserLoanState } from '@/lend/types/lend.types' const LoanSelfLiquidation = ({ rChainId, rOwmId, isLoaded, api, market, userActiveKey }: PageContentProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/lend/components/PageLoanManage/LoanSelfLiquidation/types.ts b/apps/main/src/lend/components/PageLoanManage/LoanSelfLiquidation/types.ts index 9e2d58c57..0b90d0d51 100644 --- a/apps/main/src/lend/components/PageLoanManage/LoanSelfLiquidation/types.ts +++ b/apps/main/src/lend/components/PageLoanManage/LoanSelfLiquidation/types.ts @@ -1,5 +1,5 @@ -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' -import { FormWarning } from '@lend/components/AlertFormWarning' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' +import { FormWarning } from '@/lend/components/AlertFormWarning' export type StepKey = 'APPROVAL' | 'SELF_LIQUIDATE' | '' diff --git a/apps/main/src/lend/components/PageLoanManage/Page.tsx b/apps/main/src/lend/components/PageLoanManage/Page.tsx index 7feb5c3fd..1edc36dba 100644 --- a/apps/main/src/lend/components/PageLoanManage/Page.tsx +++ b/apps/main/src/lend/components/PageLoanManage/Page.tsx @@ -1,18 +1,18 @@ import type { NextPage } from 'next' -import type { DetailInfoTypes } from '@lend/components/PageLoanManage/types' +import type { DetailInfoTypes } from '@/lend/components/PageLoanManage/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useState } from 'react' import { useLocation, useNavigate, useParams } from 'react-router-dom' -import { REFRESH_INTERVAL } from '@lend/constants' -import { _getSelectedTab } from '@lend/components/PageLoanManage/utils' -import { helpers } from '@lend/lib/apiLending' -import { scrollToTop } from '@lend/utils/helpers' -import networks from '@lend/networks' -import usePageOnMount from '@lend/hooks/usePageOnMount' -import useStore from '@lend/store/useStore' -import useTitleMapper from '@lend/hooks/useTitleMapper' +import { REFRESH_INTERVAL } from '@/lend/constants' +import { _getSelectedTab } from '@/lend/components/PageLoanManage/utils' +import { helpers } from '@/lend/lib/apiLending' +import { scrollToTop } from '@/lend/utils/helpers' +import networks from '@/lend/networks' +import usePageOnMount from '@/lend/hooks/usePageOnMount' +import useStore from '@/lend/store/useStore' +import useTitleMapper from '@/lend/hooks/useTitleMapper' import { AppPageFormContainer, @@ -22,26 +22,26 @@ import { AppPageInfoTabsWrapper, AppPageInfoWrapper, } from '@ui/AppPage' -import DocumentHead from '@lend/layout/DocumentHead' -import DetailsMarket from '@lend/components/DetailsMarket' -import DetailsUserLoan from '@lend/components/DetailsUser/components/DetailsUserLoan' -import LoanMange from '@lend/components/PageLoanManage/index' -import PageTitleBorrowSupplyLinks from '@lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks' +import DocumentHead from '@/lend/layout/DocumentHead' +import DetailsMarket from '@/lend/components/DetailsMarket' +import DetailsUserLoan from '@/lend/components/DetailsUser/components/DetailsUserLoan' +import LoanMange from '@/lend/components/PageLoanManage/index' +import PageTitleBorrowSupplyLinks from '@/lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks' import Tabs, { Tab } from '@ui/Tab' import Box from '@ui/Box' -import ChartOhlcWrapper from '@lend/components/ChartOhlcWrapper' +import ChartOhlcWrapper from '@/lend/components/ChartOhlcWrapper' import { PriceAndTradesExpandedContainer, PriceAndTradesExpandedWrapper, ExpandButton, ExpandIcon, } from '@ui/Chart/styles' -import CampaignRewardsBanner from '@lend/components/CampaignRewardsBanner' -import ConnectWallet from '@lend/components/ConnectWallet' -import { useOneWayMarket } from '@lend/entities/chain' +import CampaignRewardsBanner from '@/lend/components/CampaignRewardsBanner' +import ConnectWallet from '@/lend/components/ConnectWallet' +import { useOneWayMarket } from '@/lend/entities/chain' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps } from '@lend/types/lend.types' +import { Api, PageContentProps } from '@/lend/types/lend.types' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/lend/components/PageLoanManage/index.tsx b/apps/main/src/lend/components/PageLoanManage/index.tsx index 66a738863..f85ba6bf0 100644 --- a/apps/main/src/lend/components/PageLoanManage/index.tsx +++ b/apps/main/src/lend/components/PageLoanManage/index.tsx @@ -3,24 +3,24 @@ import type { FormType, LeverageFormType, LoanFormType, -} from '@lend/components/PageLoanManage/types' +} from '@/lend/components/PageLoanManage/types' import { useCallback, useMemo, useRef, useEffect } from 'react' import { t } from '@lingui/macro' import { useNavigate, useParams } from 'react-router-dom' -import { getLoanCreatePathname, getLoanManagePathname } from '@lend/utils/utilsRouter' +import { getLoanCreatePathname, getLoanManagePathname } from '@/lend/utils/utilsRouter' import { useSlideTabState } from '@ui/hooks' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { AppFormContent, AppFormContentWrapper, AppFormHeader, AppFormSlideTab } from '@ui/AppForm' import SlideTabsWrapper, { SlideTabs } from '@ui/TabSlide' -import LoanBorrowMore from '@lend/components/PageLoanManage/LoanBorrowMore' -import LoanRepay from '@lend/components/PageLoanManage/LoanRepay' -import LoanSelfLiquidation from '@lend/components/PageLoanManage/LoanSelfLiquidation' -import LoanCollateralAdd from '@lend/components/PageLoanManage/LoanCollateralAdd' -import LoanCollateralRemove from '@lend/components/PageLoanManage/LoanCollateralRemove' -import { PageContentProps } from '@lend/types/lend.types' +import LoanBorrowMore from '@/lend/components/PageLoanManage/LoanBorrowMore' +import LoanRepay from '@/lend/components/PageLoanManage/LoanRepay' +import LoanSelfLiquidation from '@/lend/components/PageLoanManage/LoanSelfLiquidation' +import LoanCollateralAdd from '@/lend/components/PageLoanManage/LoanCollateralAdd' +import LoanCollateralRemove from '@/lend/components/PageLoanManage/LoanCollateralRemove' +import { PageContentProps } from '@/lend/types/lend.types' const ManageLoan = (pageProps: PageContentProps) => { const { rOwmId, rFormType, userActiveKey, market, rChainId } = pageProps diff --git a/apps/main/src/lend/components/PageLoanManage/types.ts b/apps/main/src/lend/components/PageLoanManage/types.ts index 9c457e02f..b57bb5ee6 100644 --- a/apps/main/src/lend/components/PageLoanManage/types.ts +++ b/apps/main/src/lend/components/PageLoanManage/types.ts @@ -1,4 +1,4 @@ -import { FutureRates } from '@lend/types/lend.types' +import { FutureRates } from '@/lend/types/lend.types' export type DetailInfoTypes = 'user' | 'market' export type FormType = 'loan' | 'collateral' | 'leverage' diff --git a/apps/main/src/lend/components/PageLoanManage/utils.ts b/apps/main/src/lend/components/PageLoanManage/utils.ts index e0f55b2ed..214cbd426 100644 --- a/apps/main/src/lend/components/PageLoanManage/utils.ts +++ b/apps/main/src/lend/components/PageLoanManage/utils.ts @@ -1,5 +1,5 @@ -import { FormDetailInfo, FormEstGas, FormStatus } from '@lend/components/PageLoanManage/types' -import { HealthMode, MarketDetailsView } from '@lend/types/lend.types' +import { FormDetailInfo, FormEstGas, FormStatus } from '@/lend/components/PageLoanManage/types' +import { HealthMode, MarketDetailsView } from '@/lend/types/lend.types' export const DEFAULT_HEALTH_MODE: HealthMode = { percent: '', diff --git a/apps/main/src/lend/components/PageMarketList/Page.tsx b/apps/main/src/lend/components/PageMarketList/Page.tsx index 9cfeb5486..0b7253254 100644 --- a/apps/main/src/lend/components/PageMarketList/Page.tsx +++ b/apps/main/src/lend/components/PageMarketList/Page.tsx @@ -1,24 +1,24 @@ import type { NextPage } from 'next' -import type { FilterListProps, SearchParams } from '@lend/components/PageMarketList/types' +import type { FilterListProps, SearchParams } from '@/lend/components/PageMarketList/types' import { t } from '@lingui/macro' import React, { useEffect, useState } from 'react' import { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom' import styled from 'styled-components' -import { ROUTE } from '@lend/constants' -import { getPath } from '@lend/utils/utilsRouter' -import { scrollToTop } from '@lend/utils/helpers' -import usePageOnMount from '@lend/hooks/usePageOnMount' -import useSearchTermMapper from '@lend/hooks/useSearchTermMapper' -import useStore from '@lend/store/useStore' -import useTitleMapper from '@lend/hooks/useTitleMapper' +import { ROUTE } from '@/lend/constants' +import { getPath } from '@/lend/utils/utilsRouter' +import { scrollToTop } from '@/lend/utils/helpers' +import usePageOnMount from '@/lend/hooks/usePageOnMount' +import useSearchTermMapper from '@/lend/hooks/useSearchTermMapper' +import useStore from '@/lend/store/useStore' +import useTitleMapper from '@/lend/hooks/useTitleMapper' import { AppPageContainer } from '@ui/AppPage' -import DocumentHead from '@lend/layout/DocumentHead' -import MarketList from '@lend/components/PageMarketList/index' -import Settings from '@lend/layout/Settings' -import ConnectWallet from '@lend/components/ConnectWallet' +import DocumentHead from '@/lend/layout/DocumentHead' +import MarketList from '@/lend/components/PageMarketList/index' +import Settings from '@/lend/layout/Settings' +import ConnectWallet from '@/lend/components/ConnectWallet' import Box from '@ui/Box' enum SEARCH { diff --git a/apps/main/src/lend/components/PageMarketList/components/MarketListItemContent.tsx b/apps/main/src/lend/components/PageMarketList/components/MarketListItemContent.tsx index e729f24be..94056cd76 100644 --- a/apps/main/src/lend/components/PageMarketList/components/MarketListItemContent.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/MarketListItemContent.tsx @@ -1,13 +1,13 @@ -import type { MarketListItemResult, PageMarketList, TableLabel } from '@lend/components/PageMarketList/types' +import type { MarketListItemResult, PageMarketList, TableLabel } from '@/lend/components/PageMarketList/types' import React from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import MarketListTable from '@lend/components/PageMarketList/components/TableRowViewContentTable' -import MarketListItemHeader from '@lend/components/PageMarketList/components/MarketListItemHeader' +import MarketListTable from '@/lend/components/PageMarketList/components/TableRowViewContentTable' +import MarketListItemHeader from '@/lend/components/PageMarketList/components/MarketListItemHeader' const MarketListItemContent = ({ idx, diff --git a/apps/main/src/lend/components/PageMarketList/components/MarketListItemHeader.tsx b/apps/main/src/lend/components/PageMarketList/components/MarketListItemHeader.tsx index bb6d3b964..e1e668a19 100644 --- a/apps/main/src/lend/components/PageMarketList/components/MarketListItemHeader.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/MarketListItemHeader.tsx @@ -2,11 +2,11 @@ import React from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import networks from '@lend/networks' +import networks from '@/lend/networks' import Box from '@ui/Box' -import TokenIcon from '@lend/components/TokenIcon' -import { ChainId } from '@lend/types/lend.types' +import TokenIcon from '@/lend/components/TokenIcon' +import { ChainId } from '@/lend/types/lend.types' const MarketListItemHeader = ({ rChainId, diff --git a/apps/main/src/lend/components/PageMarketList/components/MarketListNoResult.tsx b/apps/main/src/lend/components/PageMarketList/components/MarketListNoResult.tsx index 33a67a5da..860ff96f6 100644 --- a/apps/main/src/lend/components/PageMarketList/components/MarketListNoResult.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/MarketListNoResult.tsx @@ -1,17 +1,17 @@ -import type { PageMarketList } from '@lend/components/PageMarketList/types' +import type { PageMarketList } from '@/lend/components/PageMarketList/types' import { t, Trans } from '@lingui/macro' import React, { useMemo } from 'react' import styled from 'styled-components' -import { Filter } from '@lend/components/PageMarketList/utils' +import { Filter } from '@/lend/components/PageMarketList/utils' import { shortenAccount } from '@ui/utils' import Box from '@ui/Box' import AlertBox from '@ui/AlertBox' import Button from '@ui/Button' import ExternalLink from 'ui/src/Link/ExternalLink' -import { useChainId, useOneWayMarketMapping } from '@lend/entities/chain' +import { useChainId, useOneWayMarketMapping } from '@/lend/entities/chain' enum ERROR { api = 'api', diff --git a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableHead.tsx b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableHead.tsx index 4d653686f..c5c61e104 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableHead.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableHead.tsx @@ -1,14 +1,14 @@ -import type { TableLabel, PageMarketList, FilterTypeKey } from '@lend/components/PageMarketList/types' +import type { TableLabel, PageMarketList, FilterTypeKey } from '@/lend/components/PageMarketList/types' import type { TheadSortButtonProps } from '@ui/Table/TheadSortButton' import React from 'react' import styled from 'styled-components' -import { _showContent } from '@lend/utils/helpers' -import useStore from '@lend/store/useStore' +import { _showContent } from '@/lend/utils/helpers' +import useStore from '@/lend/store/useStore' import { Thead, Th, TheadSortButton } from '@ui/Table' -import { Order, TitleKey } from '@lend/types/lend.types' +import { Order, TitleKey } from '@/lend/types/lend.types' const TableHead = ({ address, diff --git a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRow.tsx b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRow.tsx index c453c8739..1bdb9927a 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRow.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRow.tsx @@ -1,26 +1,26 @@ -import type { TableCellProps, TableRowProps } from '@lend/components/PageMarketList/types' +import type { TableCellProps, TableRowProps } from '@/lend/components/PageMarketList/types' import { t } from '@lingui/macro' import React, { useEffect, useRef, useState } from 'react' -import { FilterType } from '@lend/components/PageMarketList/utils' -import { TITLE } from '@lend/constants' -import { _showContent } from '@lend/utils/helpers' -import useStore from '@lend/store/useStore' +import { FilterType } from '@/lend/components/PageMarketList/utils' +import { TITLE } from '@/lend/constants' +import { _showContent } from '@/lend/utils/helpers' +import useStore from '@/lend/store/useStore' import useIntersectionObserver from '@ui/hooks/useIntersectionObserver' import { Tr, Td, CellInPool } from '@ui/Table' -import CellLoanUserState from '@lend/components/SharedCellData/CellLoanUserState' -import CellLoanUserHealth from '@lend/components/SharedCellData/CellLoanUserHealth' -import CellToken from '@lend/components/SharedCellData/CellToken' -import CellBorrowRate from '@lend/components/SharedCellData/CellBorrowRate' -import CellRewards from '@lend/components/SharedCellData/CellRewards' -import CellSupplyTotalLiquidity from '@lend/components/SharedCellData/CellSupplyTotalLiquidity' -import CellUserVaultShares from '@lend/components/SharedCellData/CellUserVaultShares' -import CellTotalCollateralValue from '@lend/components/SharedCellData/CellTotalCollateralValue' -import CellMaxLeverage from '@lend/components/SharedCellData/CellMaxLeverage' -import CellUtilization from '@lend/components/SharedCellData/CellUtilization' -import { TitleKey } from '@lend/types/lend.types' +import CellLoanUserState from '@/lend/components/SharedCellData/CellLoanUserState' +import CellLoanUserHealth from '@/lend/components/SharedCellData/CellLoanUserHealth' +import CellToken from '@/lend/components/SharedCellData/CellToken' +import CellBorrowRate from '@/lend/components/SharedCellData/CellBorrowRate' +import CellRewards from '@/lend/components/SharedCellData/CellRewards' +import CellSupplyTotalLiquidity from '@/lend/components/SharedCellData/CellSupplyTotalLiquidity' +import CellUserVaultShares from '@/lend/components/SharedCellData/CellUserVaultShares' +import CellTotalCollateralValue from '@/lend/components/SharedCellData/CellTotalCollateralValue' +import CellMaxLeverage from '@/lend/components/SharedCellData/CellMaxLeverage' +import CellUtilization from '@/lend/components/SharedCellData/CellUtilization' +import { TitleKey } from '@/lend/types/lend.types' type Content = { className: string diff --git a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowContainer.tsx b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowContainer.tsx index a1e4e0e59..35867b49e 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowContainer.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowContainer.tsx @@ -1,18 +1,18 @@ -import type { TableRowProps } from '@lend/components/PageMarketList/types' +import type { TableRowProps } from '@/lend/components/PageMarketList/types' import React, { useMemo } from 'react' import { useNavigate, useParams } from 'react-router-dom' -import { getLoanCreatePathname, getLoanManagePathname, getVaultPathname } from '@lend/utils/utilsRouter' -import { helpers } from '@lend/lib/apiLending' -import { parseSearchTermMapper } from '@lend/hooks/useSearchTermMapper' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import { getLoanCreatePathname, getLoanManagePathname, getVaultPathname } from '@/lend/utils/utilsRouter' +import { helpers } from '@/lend/lib/apiLending' +import { parseSearchTermMapper } from '@/lend/hooks/useSearchTermMapper' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' import { TrSearchedTextResult } from 'ui/src/Table' -import TableRow from '@lend/components/PageMarketList/components/TableRowViewContentTable/TableRow' -import TableRowMobile from '@lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobile' -import { useOneWayMarket } from '@lend/entities/chain' +import TableRow from '@/lend/components/PageMarketList/components/TableRowViewContentTable/TableRow' +import TableRowMobile from '@/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobile' +import { useOneWayMarket } from '@/lend/entities/chain' const TableRowContainer = ( props: Omit, diff --git a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobile.tsx b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobile.tsx index a791504de..7221c8c3c 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobile.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobile.tsx @@ -1,14 +1,14 @@ -import type { TableCellProps, TableRowProps } from '@lend/components/PageMarketList/types' +import type { TableCellProps, TableRowProps } from '@/lend/components/PageMarketList/types' import React, { useEffect, useRef, useState } from 'react' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import useIntersectionObserver from '@ui/hooks/useIntersectionObserver' -import TableRowMobileContent from '@lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileContent' -import TableRowMobileHead from '@lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileHead' +import TableRowMobileContent from '@/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileContent' +import TableRowMobileHead from '@/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileHead' import { Tr } from '@ui/Table' -import { TitleKey } from '@lend/types/lend.types' +import { TitleKey } from '@/lend/types/lend.types' export type Content = { tableKey: TitleKey diff --git a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileContent.tsx b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileContent.tsx index 657018529..729d39525 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileContent.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileContent.tsx @@ -1,21 +1,21 @@ -import type { Content } from '@lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobile' -import type { TableCellProps, TableRowProps } from '@lend/components/PageMarketList/types' +import type { Content } from '@/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobile' +import type { TableCellProps, TableRowProps } from '@/lend/components/PageMarketList/types' import React, { useCallback, useRef } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' -import { FilterType } from '@lend/components/PageMarketList/utils' -import { TITLE } from '@lend/constants' -import { _showContent } from '@lend/utils/helpers' +import { FilterType } from '@/lend/components/PageMarketList/utils' +import { TITLE } from '@/lend/constants' +import { _showContent } from '@/lend/utils/helpers' import Button from '@ui/Button' -import CellBorrowRate from '@lend/components/SharedCellData/CellBorrowRate' -import CellLoanUserState from '@lend/components/SharedCellData/CellLoanUserState' -import CellLoanUserHealth from '@lend/components/SharedCellData/CellLoanUserHealth' -import CellRewards from '@lend/components/SharedCellData/CellRewards' -import CellTotalCollateralValue from '@lend/components/SharedCellData/CellTotalCollateralValue' -import CellUtilization from '@lend/components/SharedCellData/CellUtilization' -import CellUserVaultShares from '@lend/components/SharedCellData/CellUserVaultShares' +import CellBorrowRate from '@/lend/components/SharedCellData/CellBorrowRate' +import CellLoanUserState from '@/lend/components/SharedCellData/CellLoanUserState' +import CellLoanUserHealth from '@/lend/components/SharedCellData/CellLoanUserHealth' +import CellRewards from '@/lend/components/SharedCellData/CellRewards' +import CellTotalCollateralValue from '@/lend/components/SharedCellData/CellTotalCollateralValue' +import CellUtilization from '@/lend/components/SharedCellData/CellUtilization' +import CellUserVaultShares from '@/lend/components/SharedCellData/CellUserVaultShares' import ListInfoItem, { ListInfoItems, ListInfoItemsWrapper } from '@ui/ListInfo' type Props = TableRowProps & { diff --git a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileHead.tsx b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileHead.tsx index 6df84eb3d..ed2121294 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileHead.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowMobileHead.tsx @@ -1,4 +1,4 @@ -import type { TableCellProps, TableRowProps } from '@lend/components/PageMarketList/types' +import type { TableCellProps, TableRowProps } from '@/lend/components/PageMarketList/types' import React from 'react' import { t } from '@lingui/macro' @@ -6,8 +6,8 @@ import styled from 'styled-components' import { CellInPool } from '@ui/Table' import Box from '@ui/Box' -import CellToken from '@lend/components/SharedCellData/CellToken' -import CellMaxLeverage from '@lend/components/SharedCellData/CellMaxLeverage' +import CellToken from '@/lend/components/SharedCellData/CellToken' +import CellMaxLeverage from '@/lend/components/SharedCellData/CellMaxLeverage' import IconButton from '@ui/IconButton' import Icon from '@ui/Icon' import ListInfoItem, { ListInfoItems } from '@ui/ListInfo' diff --git a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/index.tsx b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/index.tsx index 0d0fce3ab..3bef51bf9 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/index.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableRowViewContentTable/index.tsx @@ -1,16 +1,16 @@ -import type { TableProps } from '@lend/components/PageMarketList/types' +import type { TableProps } from '@/lend/components/PageMarketList/types' import React from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Box from '@ui/Box' import Table, { Tbody, Th } from '@ui/Table' -import TableHead from '@lend/components/PageMarketList/components/TableRowViewContentTable/TableHead' -import TableRowContainer from '@lend/components/PageMarketList/components/TableRowViewContentTable/TableRowContainer' +import TableHead from '@/lend/components/PageMarketList/components/TableRowViewContentTable/TableHead' +import TableRowContainer from '@/lend/components/PageMarketList/components/TableRowViewContentTable/TableRowContainer' import TextCaption from '@ui/TextCaption' const MarketListTable = ({ diff --git a/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilter.tsx b/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilter.tsx index cf73a3a81..3f1a83024 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilter.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilter.tsx @@ -1,10 +1,10 @@ -import type { SearchParams } from '@lend/components/PageMarketList/types' +import type { SearchParams } from '@/lend/components/PageMarketList/types' import React from 'react' import { Item } from 'react-stately' import { t } from '@lingui/macro' -import { Filter } from '@lend/components/PageMarketList/utils' +import { Filter } from '@/lend/components/PageMarketList/utils' import Select from '@ui/Select' type ListItem = { id: string; displayName: string } diff --git a/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilterBorrowLend.tsx b/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilterBorrowLend.tsx index 25f189e48..19b165375 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilterBorrowLend.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilterBorrowLend.tsx @@ -1,4 +1,4 @@ -import type { FilterTypeKey, FilterTypeMapper, SearchParams, TableLabel } from '@lend/components/PageMarketList/types' +import type { FilterTypeKey, FilterTypeMapper, SearchParams, TableLabel } from '@/lend/components/PageMarketList/types' import React, { useCallback } from 'react' import styled from 'styled-components' diff --git a/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilterType.tsx b/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilterType.tsx index d64eb2660..63b04568c 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilterType.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableSettings/SelectFilterType.tsx @@ -1,13 +1,13 @@ -import type { SearchParams, TableLabel } from '@lend/components/PageMarketList/types' +import type { SearchParams, TableLabel } from '@/lend/components/PageMarketList/types' import React, { useMemo } from 'react' import styled from 'styled-components' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import TableSortSelect from 'ui/src/TableSort/TableSortSelect' import TableSortSelectMobile from 'ui/src/TableSort/TableSortSelectMobile' -import { TitleMapper } from '@lend/types/lend.types' +import { TitleMapper } from '@/lend/types/lend.types' const SelectFilterType = ({ showBorrowSignerCell, diff --git a/apps/main/src/lend/components/PageMarketList/components/TableSettings/TableSettings.tsx b/apps/main/src/lend/components/PageMarketList/components/TableSettings/TableSettings.tsx index 101fe74ee..6e8f11df9 100644 --- a/apps/main/src/lend/components/PageMarketList/components/TableSettings/TableSettings.tsx +++ b/apps/main/src/lend/components/PageMarketList/components/TableSettings/TableSettings.tsx @@ -1,4 +1,4 @@ -import type { PageMarketList, TableLabel } from '@lend/components/PageMarketList/types' +import type { PageMarketList, TableLabel } from '@/lend/components/PageMarketList/types' import React from 'react' import { t } from '@lingui/macro' @@ -8,9 +8,9 @@ import { breakpoints } from '@ui/utils' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' -import SelectFilter from '@lend/components/PageMarketList/components/TableSettings/SelectFilter' -import SelectFilterType from '@lend/components/PageMarketList/components/TableSettings/SelectFilterType' -import SelectFilterBorrowLend from '@lend/components/PageMarketList/components/TableSettings/SelectFilterBorrowLend' +import SelectFilter from '@/lend/components/PageMarketList/components/TableSettings/SelectFilter' +import SelectFilterType from '@/lend/components/PageMarketList/components/TableSettings/SelectFilterType' +import SelectFilterBorrowLend from '@/lend/components/PageMarketList/components/TableSettings/SelectFilterBorrowLend' import SearchListInput from '@ui/SearchInput/SearchListInput' const TableSettings = ({ diff --git a/apps/main/src/lend/components/PageMarketList/index.tsx b/apps/main/src/lend/components/PageMarketList/index.tsx index 160a8929d..6756d3e6b 100644 --- a/apps/main/src/lend/components/PageMarketList/index.tsx +++ b/apps/main/src/lend/components/PageMarketList/index.tsx @@ -1,19 +1,19 @@ -import type { PageMarketList, TableLabel } from '@lend/components/PageMarketList/types' +import type { PageMarketList, TableLabel } from '@/lend/components/PageMarketList/types' import React, { useCallback, useEffect } from 'react' import styled from 'styled-components' -import { FilterType } from '@lend/components/PageMarketList/utils' -import { _getActiveKey } from '@lend/store/createMarketListSlice' -import useStore from '@lend/store/useStore' +import { FilterType } from '@/lend/components/PageMarketList/utils' +import { _getActiveKey } from '@/lend/store/createMarketListSlice' +import useStore from '@/lend/store/useStore' -import { REFRESH_INTERVAL } from '@lend/constants' +import { REFRESH_INTERVAL } from '@/lend/constants' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import MarketListNoResult from '@lend/components/PageMarketList/components/MarketListNoResult' -import MarketListItemContent from '@lend/components/PageMarketList/components/MarketListItemContent' -import TableSettings from '@lend/components/PageMarketList/components/TableSettings/TableSettings' +import MarketListNoResult from '@/lend/components/PageMarketList/components/MarketListNoResult' +import MarketListItemContent from '@/lend/components/PageMarketList/components/MarketListItemContent' +import TableSettings from '@/lend/components/PageMarketList/components/TableSettings/TableSettings' import usePageVisibleInterval from '@ui/hooks/usePageVisibleInterval' -import { useOneWayMarketMapping } from '@lend/entities/chain' +import { useOneWayMarketMapping } from '@/lend/entities/chain' import { useUserProfileStore } from '@ui-kit/features/user-profile' const MarketList = (pageProps: PageMarketList) => { diff --git a/apps/main/src/lend/components/PageMarketList/types.ts b/apps/main/src/lend/components/PageMarketList/types.ts index 97a7b3b38..384b7ab88 100644 --- a/apps/main/src/lend/components/PageMarketList/types.ts +++ b/apps/main/src/lend/components/PageMarketList/types.ts @@ -1,7 +1,7 @@ -import { Filter, FilterType } from '@lend/components/PageMarketList/utils' +import { Filter, FilterType } from '@/lend/components/PageMarketList/utils' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { SEARCH_TERM } from '@lend/hooks/useSearchTermMapper' -import { ChainId, Api, Order, TitleKey, TitleMapper } from '@lend/types/lend.types' +import { SEARCH_TERM } from '@/lend/hooks/useSearchTermMapper' +import { ChainId, Api, Order, TitleKey, TitleMapper } from '@/lend/types/lend.types' export type FormStatus = { error: string diff --git a/apps/main/src/lend/components/PageMarketList/utils.ts b/apps/main/src/lend/components/PageMarketList/utils.ts index f98e0568b..804793bf5 100644 --- a/apps/main/src/lend/components/PageMarketList/utils.ts +++ b/apps/main/src/lend/components/PageMarketList/utils.ts @@ -1,4 +1,4 @@ -import type { FormStatus, MarketListMapper, SearchTermResult } from '@lend/components/PageMarketList/types' +import type { FormStatus, MarketListMapper, SearchTermResult } from '@/lend/components/PageMarketList/types' import sortBy from 'lodash/sortBy' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' diff --git a/apps/main/src/lend/components/PageVault/Page.tsx b/apps/main/src/lend/components/PageVault/Page.tsx index 1c524d5a0..1637f8192 100644 --- a/apps/main/src/lend/components/PageVault/Page.tsx +++ b/apps/main/src/lend/components/PageVault/Page.tsx @@ -1,17 +1,17 @@ import type { NextPage } from 'next' -import type { DetailInfoTypes } from '@lend/components/PageLoanManage/types' +import type { DetailInfoTypes } from '@/lend/components/PageLoanManage/types' import React, { useCallback, useEffect, useState } from 'react' import { t } from '@lingui/macro' import { useLocation, useNavigate, useParams } from 'react-router-dom' -import { REFRESH_INTERVAL } from '@lend/constants' -import { _getSelectedTab } from '@lend/components/PageLoanManage/utils' -import { helpers } from '@lend/lib/apiLending' -import { scrollToTop } from '@lend/utils/helpers' -import usePageOnMount from '@lend/hooks/usePageOnMount' -import useStore from '@lend/store/useStore' -import useTitleMapper from '@lend/hooks/useTitleMapper' +import { REFRESH_INTERVAL } from '@/lend/constants' +import { _getSelectedTab } from '@/lend/components/PageLoanManage/utils' +import { helpers } from '@/lend/lib/apiLending' +import { scrollToTop } from '@/lend/utils/helpers' +import usePageOnMount from '@/lend/hooks/usePageOnMount' +import useStore from '@/lend/store/useStore' +import useTitleMapper from '@/lend/hooks/useTitleMapper' import { AppPageFormContainer, @@ -21,19 +21,19 @@ import { AppPageInfoTabsWrapper, AppPageInfoWrapper, } from '@ui/AppPage' -import DocumentHead from '@lend/layout/DocumentHead' -import DetailsMarket from '@lend/components/DetailsMarket' -import DetailsUser from '@lend/components/DetailsUser' -import PageTitleBorrowSupplyLinks from '@lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks' +import DocumentHead from '@/lend/layout/DocumentHead' +import DetailsMarket from '@/lend/components/DetailsMarket' +import DetailsUser from '@/lend/components/DetailsUser' +import PageTitleBorrowSupplyLinks from '@/lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks' import Tabs, { Tab } from '@ui/Tab' -import Vault from '@lend/components/PageVault/index' +import Vault from '@/lend/components/PageVault/index' import Box from '@ui/Box' -import CampaignRewardsBanner from '@lend/components/CampaignRewardsBanner' -import ConnectWallet from '@lend/components/ConnectWallet' +import CampaignRewardsBanner from '@/lend/components/CampaignRewardsBanner' +import ConnectWallet from '@/lend/components/ConnectWallet' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { useOneWayMarket } from '@lend/entities/chain' +import { useOneWayMarket } from '@/lend/entities/chain' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Api, PageContentProps } from '@lend/types/lend.types' +import { Api, PageContentProps } from '@/lend/types/lend.types' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/lend/components/PageVault/VaultClaim/index.tsx b/apps/main/src/lend/components/PageVault/VaultClaim/index.tsx index eb8fabee3..03c516af0 100644 --- a/apps/main/src/lend/components/PageVault/VaultClaim/index.tsx +++ b/apps/main/src/lend/components/PageVault/VaultClaim/index.tsx @@ -1,28 +1,28 @@ -import type { FormStatus } from '@lend/components/PageVault/VaultClaim/types' +import type { FormStatus } from '@/lend/components/PageVault/VaultClaim/types' import type { Step } from '@ui/Stepper/types' -import type { RewardType } from '@lend/components/PageVault/VaultClaim/types' +import type { RewardType } from '@/lend/components/PageVault/VaultClaim/types' import React, { useCallback, useEffect, useRef, useState } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@lend/components/AlertFormError' +import AlertFormError from '@/lend/components/AlertFormError' import Box from '@ui/Box' import Button from '@ui/Button' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Spinner from '@ui/Spinner' import SpinnerWrapper from '@ui/Spinner/SpinnerWrapper' import Stats from '@ui/Stats' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api, PageContentProps, MarketClaimable } from '@lend/types/lend.types' +import { Api, PageContentProps, MarketClaimable } from '@/lend/types/lend.types' const VaultClaim = ({ isLoaded, api, market, userActiveKey }: PageContentProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/lend/components/PageVault/VaultClaim/types.ts b/apps/main/src/lend/components/PageVault/VaultClaim/types.ts index 91c0a6c28..aa48862a2 100644 --- a/apps/main/src/lend/components/PageVault/VaultClaim/types.ts +++ b/apps/main/src/lend/components/PageVault/VaultClaim/types.ts @@ -1,4 +1,4 @@ -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' export type RewardType = 'crv' | 'rewards' export type StepKey = 'CLAIM_CRV' | 'CLAIM_REWARDS' | '' diff --git a/apps/main/src/lend/components/PageVault/VaultClaim/utils.ts b/apps/main/src/lend/components/PageVault/VaultClaim/utils.ts index b2aee4144..69f76434e 100644 --- a/apps/main/src/lend/components/PageVault/VaultClaim/utils.ts +++ b/apps/main/src/lend/components/PageVault/VaultClaim/utils.ts @@ -1,6 +1,6 @@ -import type { FormStatus } from '@lend/components/PageVault/VaultClaim/types' +import type { FormStatus } from '@/lend/components/PageVault/VaultClaim/types' -import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' export const DEFAULT_FORM_STATUS: FormStatus = { ...FORM_STATUS, diff --git a/apps/main/src/lend/components/PageVault/VaultDepositMint/index.tsx b/apps/main/src/lend/components/PageVault/VaultDepositMint/index.tsx index ab7a01721..700f6ec72 100644 --- a/apps/main/src/lend/components/PageVault/VaultDepositMint/index.tsx +++ b/apps/main/src/lend/components/PageVault/VaultDepositMint/index.tsx @@ -1,31 +1,31 @@ -import type { FormValues, FormStatus, StepKey } from '@lend/components/PageVault/VaultDepositMint/types' +import type { FormValues, FormStatus, StepKey } from '@/lend/components/PageVault/VaultDepositMint/types' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useEffect, useRef, useState } from 'react' import { t } from '@lingui/macro' -import { _getMaxActiveKey, _isDeposit } from '@lend/store/createVaultDepositMintSlice' +import { _getMaxActiveKey, _isDeposit } from '@/lend/store/createVaultDepositMintSlice' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' -import useMarketAlert from '@lend/hooks/useMarketAlert' -import useStore from '@lend/store/useStore' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' +import useMarketAlert from '@/lend/hooks/useMarketAlert' +import useStore from '@/lend/store/useStore' -import { StyledDetailInfoWrapper, StyledInpChip } from '@lend/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper, StyledInpChip } from '@/lend/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@lend/components/AlertFormError' +import AlertFormError from '@/lend/components/AlertFormError' import Box from '@ui/Box' import DetailInfo from '@ui/DetailInfo' -import DetailInfoRate from '@lend/components/DetailInfoRate' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' +import DetailInfoRate from '@/lend/components/DetailInfoRate' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import InpChipUsdRate from '@lend/components/InpChipUsdRate' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import InpChipUsdRate from '@/lend/components/InpChipUsdRate' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api, PageContentProps } from '@lend/types/lend.types' +import { Api, PageContentProps } from '@/lend/types/lend.types' const VaultDepositMint = ({ rChainId, rOwmId, rFormType, isLoaded, api, market, userActiveKey }: PageContentProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/lend/components/PageVault/VaultDepositMint/types.ts b/apps/main/src/lend/components/PageVault/VaultDepositMint/types.ts index fef31ba25..c99114f43 100644 --- a/apps/main/src/lend/components/PageVault/VaultDepositMint/types.ts +++ b/apps/main/src/lend/components/PageVault/VaultDepositMint/types.ts @@ -1,4 +1,4 @@ -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' export type FormValues = { amount: string diff --git a/apps/main/src/lend/components/PageVault/VaultDepositMint/utils.ts b/apps/main/src/lend/components/PageVault/VaultDepositMint/utils.ts index 6e9fc6766..a8796b1d6 100644 --- a/apps/main/src/lend/components/PageVault/VaultDepositMint/utils.ts +++ b/apps/main/src/lend/components/PageVault/VaultDepositMint/utils.ts @@ -1,6 +1,6 @@ -import type { FormStatus, FormValues } from '@lend/components/PageVault/VaultDepositMint/types' +import type { FormStatus, FormValues } from '@/lend/components/PageVault/VaultDepositMint/types' -import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' export const DEFAULT_FORM_STATUS: FormStatus = { ...FORM_STATUS, diff --git a/apps/main/src/lend/components/PageVault/VaultStake/index.tsx b/apps/main/src/lend/components/PageVault/VaultStake/index.tsx index 8b8e48946..781326925 100644 --- a/apps/main/src/lend/components/PageVault/VaultStake/index.tsx +++ b/apps/main/src/lend/components/PageVault/VaultStake/index.tsx @@ -1,4 +1,4 @@ -import type { FormValues, FormStatus, StepKey } from '@lend/components/PageVault/VaultStake/types' +import type { FormValues, FormStatus, StepKey } from '@/lend/components/PageVault/VaultStake/types' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useEffect, useRef, useState } from 'react' @@ -6,23 +6,23 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' -import { StyledDetailInfoWrapper, StyledInpChip } from '@lend/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper, StyledInpChip } from '@/lend/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@lend/components/AlertFormError' +import AlertFormError from '@/lend/components/AlertFormError' import Box from '@ui/Box' -import DetailInfoCrvIncentives from '@lend/components/DetailInfoCrvIncentives' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' +import DetailInfoCrvIncentives from '@/lend/components/DetailInfoCrvIncentives' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import InpChipVaultSharesUsdRate from '@lend/components/InpChipVaultShareUsdRate' +import InpChipVaultSharesUsdRate from '@/lend/components/InpChipVaultShareUsdRate' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api, PageContentProps } from '@lend/types/lend.types' +import { Api, PageContentProps } from '@/lend/types/lend.types' const VaultStake = ({ rChainId, rOwmId, rFormType, isLoaded, api, market, userActiveKey }: PageContentProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/lend/components/PageVault/VaultStake/types.ts b/apps/main/src/lend/components/PageVault/VaultStake/types.ts index b93d4668f..5ceab8701 100644 --- a/apps/main/src/lend/components/PageVault/VaultStake/types.ts +++ b/apps/main/src/lend/components/PageVault/VaultStake/types.ts @@ -1,4 +1,4 @@ -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' export type FormValues = { amount: string diff --git a/apps/main/src/lend/components/PageVault/VaultStake/utils.ts b/apps/main/src/lend/components/PageVault/VaultStake/utils.ts index 9025f2355..ea75a1659 100644 --- a/apps/main/src/lend/components/PageVault/VaultStake/utils.ts +++ b/apps/main/src/lend/components/PageVault/VaultStake/utils.ts @@ -1,6 +1,6 @@ -import type { FormStatus, FormValues } from '@lend/components/PageVault/VaultStake/types' +import type { FormStatus, FormValues } from '@/lend/components/PageVault/VaultStake/types' -import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' export const DEFAULT_FORM_STATUS: FormStatus = { ...FORM_STATUS, diff --git a/apps/main/src/lend/components/PageVault/VaultUnstake/index.tsx b/apps/main/src/lend/components/PageVault/VaultUnstake/index.tsx index 6a7b96f80..0e743ad6f 100644 --- a/apps/main/src/lend/components/PageVault/VaultUnstake/index.tsx +++ b/apps/main/src/lend/components/PageVault/VaultUnstake/index.tsx @@ -1,4 +1,4 @@ -import type { FormValues, FormStatus, StepKey } from '@lend/components/PageVault/VaultUnstake/types' +import type { FormValues, FormStatus, StepKey } from '@/lend/components/PageVault/VaultUnstake/types' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useEffect, useRef, useState } from 'react' @@ -6,22 +6,22 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' -import { StyledDetailInfoWrapper, StyledInpChip } from '@lend/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper, StyledInpChip } from '@/lend/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@lend/components/AlertFormError' +import AlertFormError from '@/lend/components/AlertFormError' import Box from '@ui/Box' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' -import InpChipVaultSharesUsdRate from '@lend/components/InpChipVaultShareUsdRate' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' +import InpChipVaultSharesUsdRate from '@/lend/components/InpChipVaultShareUsdRate' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api, PageContentProps } from '@lend/types/lend.types' +import { Api, PageContentProps } from '@/lend/types/lend.types' const VaultUnstake = ({ rChainId, rOwmId, rFormType, isLoaded, api, market, userActiveKey }: PageContentProps) => { const isSubscribed = useRef(false) diff --git a/apps/main/src/lend/components/PageVault/VaultUnstake/types.ts b/apps/main/src/lend/components/PageVault/VaultUnstake/types.ts index 63026efb5..350e2bce2 100644 --- a/apps/main/src/lend/components/PageVault/VaultUnstake/types.ts +++ b/apps/main/src/lend/components/PageVault/VaultUnstake/types.ts @@ -1,4 +1,4 @@ -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' export type FormValues = { amount: string diff --git a/apps/main/src/lend/components/PageVault/VaultUnstake/utils.ts b/apps/main/src/lend/components/PageVault/VaultUnstake/utils.ts index 1dca53919..e555d6f06 100644 --- a/apps/main/src/lend/components/PageVault/VaultUnstake/utils.ts +++ b/apps/main/src/lend/components/PageVault/VaultUnstake/utils.ts @@ -1,6 +1,6 @@ -import type { FormStatus, FormValues } from '@lend/components/PageVault/VaultUnstake/types' +import type { FormStatus, FormValues } from '@/lend/components/PageVault/VaultUnstake/types' -import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' export const DEFAULT_FORM_STATUS: FormStatus = { ...FORM_STATUS, diff --git a/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/index.tsx b/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/index.tsx index f2f6f0e1e..fe82f9409 100644 --- a/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/index.tsx +++ b/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/index.tsx @@ -1,4 +1,4 @@ -import type { FormStatus, FormValues, StepKey } from '@lend/components/PageVault/VaultWithdrawRedeem/types' +import type { FormStatus, FormValues, StepKey } from '@/lend/components/PageVault/VaultWithdrawRedeem/types' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useEffect, useRef, useState } from 'react' @@ -6,26 +6,26 @@ import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { helpers } from '@lend/lib/apiLending' -import { _getMaxActiveKey } from '@lend/store/createVaultDepositMintSlice' -import { _isWithdraw } from '@lend/store/createVaultWithdrawRedeemSlice' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import { helpers } from '@/lend/lib/apiLending' +import { _getMaxActiveKey } from '@/lend/store/createVaultDepositMintSlice' +import { _isWithdraw } from '@/lend/store/createVaultWithdrawRedeemSlice' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' -import { StyledDetailInfoWrapper, StyledInpChip } from '@lend/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper, StyledInpChip } from '@/lend/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@lend/components/AlertFormError' +import AlertFormError from '@/lend/components/AlertFormError' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' import DetailInfo from '@ui/DetailInfo' -import DetailInfoEstimateGas from '@lend/components/DetailInfoEstimateGas' -import DetailInfoRate from '@lend/components/DetailInfoRate' +import DetailInfoEstimateGas from '@/lend/components/DetailInfoEstimateGas' +import DetailInfoRate from '@/lend/components/DetailInfoRate' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanFormConnect from '@lend/components/LoanFormConnect' +import LoanFormConnect from '@/lend/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api, PageContentProps } from '@lend/types/lend.types' +import { Api, PageContentProps } from '@/lend/types/lend.types' const VaultWithdrawRedeem = ({ rChainId, diff --git a/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/types.ts b/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/types.ts index ed696dd6b..25cb886eb 100644 --- a/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/types.ts +++ b/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/types.ts @@ -1,4 +1,4 @@ -import type { FormStatus as Fs } from '@lend/components/PageLoanManage/types' +import type { FormStatus as Fs } from '@/lend/components/PageLoanManage/types' export type FormValues = { amount: string diff --git a/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/utils.ts b/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/utils.ts index 581cf623a..ae8b9a035 100644 --- a/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/utils.ts +++ b/apps/main/src/lend/components/PageVault/VaultWithdrawRedeem/utils.ts @@ -1,4 +1,4 @@ -import type { FormStatus, FormValues } from '@lend/components/PageVault/VaultWithdrawRedeem/types' +import type { FormStatus, FormValues } from '@/lend/components/PageVault/VaultWithdrawRedeem/types' export const DEFAULT_FORM_STATUS: FormStatus = { isComplete: false, diff --git a/apps/main/src/lend/components/PageVault/index.tsx b/apps/main/src/lend/components/PageVault/index.tsx index 5f5c58861..e3b64f0ae 100644 --- a/apps/main/src/lend/components/PageVault/index.tsx +++ b/apps/main/src/lend/components/PageVault/index.tsx @@ -1,21 +1,21 @@ -import type { FormType, VaultDepositFormType, VaultWithdrawFormType } from '@lend/components/PageVault/types' +import type { FormType, VaultDepositFormType, VaultWithdrawFormType } from '@/lend/components/PageVault/types' import { t } from '@lingui/macro' import { useRef, useEffect } from 'react' import { useNavigate, useParams } from 'react-router-dom' -import { getVaultPathname } from '@lend/utils/utilsRouter' +import { getVaultPathname } from '@/lend/utils/utilsRouter' import { useSlideTabState } from '@ui/hooks' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { AppFormContent, AppFormContentWrapper, AppFormSlideTab, AppFormHeader } from '@ui/AppForm' import SlideTabsWrapper, { SlideTabs } from '@ui/TabSlide' -import VaultDepositMint from '@lend/components/PageVault/VaultDepositMint' -import VaultWithdrawRedeem from '@lend/components/PageVault/VaultWithdrawRedeem' -import VaultStake from '@lend/components/PageVault/VaultStake' -import VaultUnstake from '@lend/components/PageVault/VaultUnstake' -import VaultClaim from '@lend/components/PageVault/VaultClaim' -import { PageContentProps } from '@lend/types/lend.types' +import VaultDepositMint from '@/lend/components/PageVault/VaultDepositMint' +import VaultWithdrawRedeem from '@/lend/components/PageVault/VaultWithdrawRedeem' +import VaultStake from '@/lend/components/PageVault/VaultStake' +import VaultUnstake from '@/lend/components/PageVault/VaultUnstake' +import VaultClaim from '@/lend/components/PageVault/VaultClaim' +import { PageContentProps } from '@/lend/types/lend.types' const Vault = (pageProps: PageContentProps) => { const { rOwmId, rFormType, rChainId } = pageProps diff --git a/apps/main/src/lend/components/SharedCellData/CellBorrowRate.tsx b/apps/main/src/lend/components/SharedCellData/CellBorrowRate.tsx index 2836a36c6..93e31211b 100644 --- a/apps/main/src/lend/components/SharedCellData/CellBorrowRate.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellBorrowRate.tsx @@ -1,8 +1,8 @@ import React from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' -import { ChainId } from '@lend/types/lend.types' +import useStore from '@/lend/store/useStore' +import { ChainId } from '@/lend/types/lend.types' const CellBorrowRate = ({ rChainId, diff --git a/apps/main/src/lend/components/SharedCellData/CellCap.tsx b/apps/main/src/lend/components/SharedCellData/CellCap.tsx index d1d72c298..64e379ced 100644 --- a/apps/main/src/lend/components/SharedCellData/CellCap.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellCap.tsx @@ -1,10 +1,10 @@ import { useMemo } from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import TextCaption from '@ui/TextCaption' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const CellCap = ({ rChainId, diff --git a/apps/main/src/lend/components/SharedCellData/CellHealthStatus.tsx b/apps/main/src/lend/components/SharedCellData/CellHealthStatus.tsx index a70587e50..4e192fb79 100644 --- a/apps/main/src/lend/components/SharedCellData/CellHealthStatus.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellHealthStatus.tsx @@ -1,9 +1,9 @@ import React from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { HealthColorText } from '@lend/components/DetailsUser/styles' +import { HealthColorText } from '@/lend/components/DetailsUser/styles' const CellHealthStatus = ({ userActiveKey, type }: { userActiveKey: string; type: 'status' | 'percent' }) => { const resp = useStore((state) => state.user.loansDetailsMapper[userActiveKey]) diff --git a/apps/main/src/lend/components/SharedCellData/CellLiquidationRange.tsx b/apps/main/src/lend/components/SharedCellData/CellLiquidationRange.tsx index 06e9beb4c..627159cde 100644 --- a/apps/main/src/lend/components/SharedCellData/CellLiquidationRange.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellLiquidationRange.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from 'react' import isUndefined from 'lodash/isUndefined' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' const CellHealthStatus = ({ userActiveKey, type }: { userActiveKey: string; type: 'range' | 'band' | 'bandPct' }) => { const resp = useStore((state) => state.user.loansDetailsMapper[userActiveKey]) diff --git a/apps/main/src/lend/components/SharedCellData/CellLlammaBalances.tsx b/apps/main/src/lend/components/SharedCellData/CellLlammaBalances.tsx index 10fb2d6ce..8b2bbeb53 100644 --- a/apps/main/src/lend/components/SharedCellData/CellLlammaBalances.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellLlammaBalances.tsx @@ -2,10 +2,10 @@ import React from 'react' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Box from '@ui/Box' -import InpChipUsdRate from '@lend/components/InpChipUsdRate' +import InpChipUsdRate from '@/lend/components/InpChipUsdRate' import TextCaption from '@ui/TextCaption' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' diff --git a/apps/main/src/lend/components/SharedCellData/CellLoanState.tsx b/apps/main/src/lend/components/SharedCellData/CellLoanState.tsx index a8fdc30af..a6f793858 100644 --- a/apps/main/src/lend/components/SharedCellData/CellLoanState.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellLoanState.tsx @@ -3,11 +3,11 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Box from '@ui/Box' import Chip from 'ui/src/Typography/Chip' -import InpChipUsdRate from '@lend/components/InpChipUsdRate' +import InpChipUsdRate from '@/lend/components/InpChipUsdRate' import TextCaption from '@ui/TextCaption' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' diff --git a/apps/main/src/lend/components/SharedCellData/CellLoanTotalDebt.tsx b/apps/main/src/lend/components/SharedCellData/CellLoanTotalDebt.tsx index 635ecae63..4f1725890 100644 --- a/apps/main/src/lend/components/SharedCellData/CellLoanTotalDebt.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellLoanTotalDebt.tsx @@ -1,8 +1,8 @@ import React from 'react' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' -import { ChainId } from '@lend/types/lend.types' +import useStore from '@/lend/store/useStore' +import { ChainId } from '@/lend/types/lend.types' const CellLoanTotalDebt = ({ rChainId, rOwmId }: { rChainId: ChainId; rOwmId: string }) => { const resp = useStore((state) => state.markets.statsTotalsMapper[rChainId]?.[rOwmId]) diff --git a/apps/main/src/lend/components/SharedCellData/CellLoanUserHealth.tsx b/apps/main/src/lend/components/SharedCellData/CellLoanUserHealth.tsx index 6362a40a6..dd3ad3f4b 100644 --- a/apps/main/src/lend/components/SharedCellData/CellLoanUserHealth.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellLoanUserHealth.tsx @@ -1,5 +1,5 @@ import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' const CellLoanUserHealth = ({ userActiveKey }: { userActiveKey: string }) => { const loanExistsResp = useStore((state) => state.user.loansExistsMapper[userActiveKey]) diff --git a/apps/main/src/lend/components/SharedCellData/CellLoanUserState.tsx b/apps/main/src/lend/components/SharedCellData/CellLoanUserState.tsx index 3ef021d7a..c871dc077 100644 --- a/apps/main/src/lend/components/SharedCellData/CellLoanUserState.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellLoanUserState.tsx @@ -1,5 +1,5 @@ import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' const CellLoanUserState = ({ userActiveKey, type }: { userActiveKey: string; type: 'debt' }) => { const loanExistsResp = useStore((state) => state.user.loansExistsMapper[userActiveKey]) diff --git a/apps/main/src/lend/components/SharedCellData/CellLoss.tsx b/apps/main/src/lend/components/SharedCellData/CellLoss.tsx index 3ddb07dac..2d5e62e33 100644 --- a/apps/main/src/lend/components/SharedCellData/CellLoss.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellLoss.tsx @@ -1,6 +1,6 @@ import React from 'react' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' diff --git a/apps/main/src/lend/components/SharedCellData/CellMaxLeverage.tsx b/apps/main/src/lend/components/SharedCellData/CellMaxLeverage.tsx index 8b60eafe4..280004d7b 100644 --- a/apps/main/src/lend/components/SharedCellData/CellMaxLeverage.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellMaxLeverage.tsx @@ -5,11 +5,11 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Chip from '@ui/Typography/Chip' import TextCaption from '@ui/TextCaption' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const CellMaxLeverage = ({ className = '', diff --git a/apps/main/src/lend/components/SharedCellData/CellRewards.tsx b/apps/main/src/lend/components/SharedCellData/CellRewards.tsx index 45e11f9c7..6915cd838 100644 --- a/apps/main/src/lend/components/SharedCellData/CellRewards.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellRewards.tsx @@ -5,15 +5,15 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { buttonOutlinedStyles } from '@ui/Button/styles' -import useStore from '@lend/store/useStore' -import useSupplyTotalApr from '@lend/hooks/useSupplyTotalApr' +import useStore from '@/lend/store/useStore' +import useSupplyTotalApr from '@/lend/hooks/useSupplyTotalApr' import Button from '@ui/Button' import Chip from '@ui/Typography/Chip' -import ChipInactive from '@lend/components/ChipInactive' -import CellRewardsTooltip from '@lend/components/SharedCellData/CellRewardsTooltip' +import ChipInactive from '@/lend/components/ChipInactive' +import CellRewardsTooltip from '@/lend/components/SharedCellData/CellRewardsTooltip' import Icon from '@ui/Icon' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const CellRewards = ({ className = '', diff --git a/apps/main/src/lend/components/SharedCellData/CellSupplyTotalLiquidity.tsx b/apps/main/src/lend/components/SharedCellData/CellSupplyTotalLiquidity.tsx index e684ac332..3d459e771 100644 --- a/apps/main/src/lend/components/SharedCellData/CellSupplyTotalLiquidity.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellSupplyTotalLiquidity.tsx @@ -1,8 +1,8 @@ import React from 'react' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' -import { ChainId } from '@lend/types/lend.types' +import useStore from '@/lend/store/useStore' +import { ChainId } from '@/lend/types/lend.types' const CellSupplyTotalLiquidity = ({ rChainId, rOwmId }: { rChainId: ChainId; rOwmId: string }) => { const resp = useStore((state) => state.markets.totalLiquidityMapper[rChainId]?.[rOwmId]) diff --git a/apps/main/src/lend/components/SharedCellData/CellToken.tsx b/apps/main/src/lend/components/SharedCellData/CellToken.tsx index f948cfa2d..9bd38d61c 100644 --- a/apps/main/src/lend/components/SharedCellData/CellToken.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellToken.tsx @@ -1,13 +1,13 @@ import React from 'react' -import useCampaignRewardsMapper from '@lend/hooks/useCampaignRewardsMapper' +import useCampaignRewardsMapper from '@/lend/hooks/useCampaignRewardsMapper' import Chip from '@ui/Typography/Chip' import Box from '@ui/Box' -import CampaignRewardsRow from '@lend/components/CampaignRewardsRow' -import TokenLabel from '@lend/components/TokenLabel' +import CampaignRewardsRow from '@/lend/components/CampaignRewardsRow' +import TokenLabel from '@/lend/components/TokenLabel' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const CellToken = ({ hideIcon, diff --git a/apps/main/src/lend/components/SharedCellData/CellTotalCollateralValue.tsx b/apps/main/src/lend/components/SharedCellData/CellTotalCollateralValue.tsx index e93cb8994..8b53cc547 100644 --- a/apps/main/src/lend/components/SharedCellData/CellTotalCollateralValue.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellTotalCollateralValue.tsx @@ -2,12 +2,12 @@ import { useEffect } from 'react' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import TextCaption from '@ui/TextCaption' -import { useOneWayMarket } from '@lend/entities/chain' +import { useOneWayMarket } from '@/lend/entities/chain' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const CellTotalCollateralValue = ({ rChainId, rOwmId }: { rChainId: ChainId; rOwmId: string }) => { const market = useOneWayMarket(rChainId, rOwmId).data diff --git a/apps/main/src/lend/components/SharedCellData/CellUserBalances.tsx b/apps/main/src/lend/components/SharedCellData/CellUserBalances.tsx index b0194ff07..5ae03e10e 100644 --- a/apps/main/src/lend/components/SharedCellData/CellUserBalances.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellUserBalances.tsx @@ -3,7 +3,7 @@ import type { ChipProps } from '@ui/Typography/types' import React from 'react' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Chip from '@ui/Typography/Chip' diff --git a/apps/main/src/lend/components/SharedCellData/CellUserMain.tsx b/apps/main/src/lend/components/SharedCellData/CellUserMain.tsx index f7d05df28..7f95557f6 100644 --- a/apps/main/src/lend/components/SharedCellData/CellUserMain.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellUserMain.tsx @@ -3,14 +3,14 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' -import useVaultShares from '@lend/hooks/useVaultShares' +import useStore from '@/lend/store/useStore' +import useVaultShares from '@/lend/hooks/useVaultShares' import Chip from '@ui/Typography/Chip' -import InpChipUsdRate from '@lend/components/InpChipUsdRate' +import InpChipUsdRate from '@/lend/components/InpChipUsdRate' import ListInfoItem from '@ui/ListInfo' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const CellUserMain = ({ rChainId, diff --git a/apps/main/src/lend/components/SharedCellData/CellUserVaultShares.tsx b/apps/main/src/lend/components/SharedCellData/CellUserVaultShares.tsx index f484ef0b0..1647728c7 100644 --- a/apps/main/src/lend/components/SharedCellData/CellUserVaultShares.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellUserVaultShares.tsx @@ -1,7 +1,7 @@ -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import ChipVaultSharesUsdRate from '@lend/components/InpChipVaultShareUsdRate' -import { ChainId } from '@lend/types/lend.types' +import ChipVaultSharesUsdRate from '@/lend/components/InpChipVaultShareUsdRate' +import { ChainId } from '@/lend/types/lend.types' const CellUserVaultShares = ({ rChainId, diff --git a/apps/main/src/lend/components/SharedCellData/CellUtilization.tsx b/apps/main/src/lend/components/SharedCellData/CellUtilization.tsx index 104a94786..3258f65dd 100644 --- a/apps/main/src/lend/components/SharedCellData/CellUtilization.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellUtilization.tsx @@ -2,13 +2,13 @@ import React, { useMemo } from 'react' import styled from 'styled-components' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Chip from '@ui/Typography/Chip' -import CellUtilizationTooltip from '@lend/components/SharedCellData/CellUtilizationTooltip' +import CellUtilizationTooltip from '@/lend/components/SharedCellData/CellUtilizationTooltip' import ProgressBar from '@ui/ProgressBar' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' type Props = { isMobile?: boolean diff --git a/apps/main/src/lend/components/SharedCellData/CellUtilizationTooltip.tsx b/apps/main/src/lend/components/SharedCellData/CellUtilizationTooltip.tsx index 6cf4592aa..ddaf72ce0 100644 --- a/apps/main/src/lend/components/SharedCellData/CellUtilizationTooltip.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellUtilizationTooltip.tsx @@ -3,9 +3,9 @@ import styled from 'styled-components' import { useMemo } from 'react' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' type Props = { className?: string diff --git a/apps/main/src/lend/components/SharedCellData/CellVaultPricePerShare.tsx b/apps/main/src/lend/components/SharedCellData/CellVaultPricePerShare.tsx index 304eb2f14..793d4f7b0 100644 --- a/apps/main/src/lend/components/SharedCellData/CellVaultPricePerShare.tsx +++ b/apps/main/src/lend/components/SharedCellData/CellVaultPricePerShare.tsx @@ -3,10 +3,10 @@ import type { ChipProps } from '@ui/Typography/types' import React from 'react' import { formatNumber } from '@ui/utils' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Chip from '@ui/Typography/Chip' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const CellVaultPricePerShare = ({ rChainId, diff --git a/apps/main/src/lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks.tsx b/apps/main/src/lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks.tsx index 765997d20..7323d8066 100644 --- a/apps/main/src/lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks.tsx +++ b/apps/main/src/lend/components/SharedPageStyles/PageTitleBorrowSupplyLinks.tsx @@ -1,8 +1,8 @@ import type { Params } from 'react-router-dom' -import { getLoanCreatePathname, getLoanManagePathname, getVaultPathname } from '@lend/utils/utilsRouter' -import { helpers } from '@lend/lib/apiLending' -import useStore from '@lend/store/useStore' +import { getLoanCreatePathname, getLoanManagePathname, getVaultPathname } from '@/lend/utils/utilsRouter' +import { helpers } from '@/lend/lib/apiLending' +import useStore from '@/lend/store/useStore' import { AppPageFormTitleLinks } from '@ui/AppPage' import InternalLink from '@ui/Link/InternalLink' diff --git a/apps/main/src/lend/components/TokenIcon.tsx b/apps/main/src/lend/components/TokenIcon.tsx index 2f1549523..1eebdbce0 100644 --- a/apps/main/src/lend/components/TokenIcon.tsx +++ b/apps/main/src/lend/components/TokenIcon.tsx @@ -1,5 +1,5 @@ import React from 'react' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import TokenIconComp, { type TokenIconProps } from '@ui/Token/TokenIcon' diff --git a/apps/main/src/lend/components/TokenIcons.tsx b/apps/main/src/lend/components/TokenIcons.tsx index fbee69aeb..843595922 100644 --- a/apps/main/src/lend/components/TokenIcons.tsx +++ b/apps/main/src/lend/components/TokenIcons.tsx @@ -1,6 +1,6 @@ import React from 'react' -import TokenIcon from '@lend/components/TokenIcon' +import TokenIcon from '@/lend/components/TokenIcon' import TokensIconComp, { type TokensIconProps } from 'ui/src/Token/TokensIcon' export type Props = Omit diff --git a/apps/main/src/lend/components/TokenLabel.tsx b/apps/main/src/lend/components/TokenLabel.tsx index 76cb9bec9..fe655ba4e 100644 --- a/apps/main/src/lend/components/TokenLabel.tsx +++ b/apps/main/src/lend/components/TokenLabel.tsx @@ -2,18 +2,18 @@ import type { BoxProps } from '@ui/Box/types' import styled from 'styled-components' -import { copyToClipboard } from '@lend/utils/helpers' -import { helpers } from '@lend/lib/apiLending' -import networks from '@lend/networks' +import { copyToClipboard } from '@/lend/utils/helpers' +import { helpers } from '@/lend/lib/apiLending' +import networks from '@/lend/networks' import Box from '@ui/Box' import ExternalLink from '@ui/Link/ExternalLink' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' import TextEllipsis from '@ui/TextEllipsis' -import TokenIcon from '@lend/components/TokenIcon' +import TokenIcon from '@/lend/components/TokenIcon' import type { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' const TokenLabel = ({ rChainId, diff --git a/apps/main/src/lend/entities/chain/chain-hooks.ts b/apps/main/src/lend/entities/chain/chain-hooks.ts index f6341b1f0..11ba98ba5 100644 --- a/apps/main/src/lend/entities/chain/chain-hooks.ts +++ b/apps/main/src/lend/entities/chain/chain-hooks.ts @@ -1,10 +1,10 @@ import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { useMemo } from 'react' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' import { useOneWayMarketNames } from './chain-query' import { ChainParams } from '@ui-kit/lib/model/query' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' export const useOneWayMarketMapping = (params: ChainParams) => { const { chainId } = params diff --git a/apps/main/src/lend/entities/chain/chain-info.ts b/apps/main/src/lend/entities/chain/chain-info.ts index e5f497664..7eabdb1b9 100644 --- a/apps/main/src/lend/entities/chain/chain-info.ts +++ b/apps/main/src/lend/entities/chain/chain-info.ts @@ -1,7 +1,7 @@ import { useMemo } from 'react' import { FETCHING, PartialQueryResult, READY } from '@ui-kit/lib/queries' -import useStore from '@lend/store/useStore' -import { ChainId } from '@lend/types/lend.types' +import useStore from '@/lend/store/useStore' +import { ChainId } from '@/lend/types/lend.types' export const useChainId = (): PartialQueryResult => { const api = useStore((state) => state.api) diff --git a/apps/main/src/lend/entities/chain/chain-query.ts b/apps/main/src/lend/entities/chain/chain-query.ts index ac262bb4e..83ab84661 100644 --- a/apps/main/src/lend/entities/chain/chain-query.ts +++ b/apps/main/src/lend/entities/chain/chain-query.ts @@ -1,8 +1,8 @@ import { apiValidationGroup, chainValidationGroup } from './validation' import { ChainParams, ChainQuery, queryFactory } from '@ui-kit/lib/model/query' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { createValidationSuite } from '@ui-kit/lib/validation' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' export const { useQuery: useOneWayMarketNames, prefetchQuery: prefetchMarkets } = queryFactory({ queryKey: ({ chainId }: ChainParams) => ['chain', { chainId }, 'markets'] as const, diff --git a/apps/main/src/lend/entities/chain/chain-tvl.ts b/apps/main/src/lend/entities/chain/chain-tvl.ts index ba3ef3290..9ed44b830 100644 --- a/apps/main/src/lend/entities/chain/chain-tvl.ts +++ b/apps/main/src/lend/entities/chain/chain-tvl.ts @@ -1,10 +1,10 @@ import { useMemo } from 'react' -import { useTokenUsdRates } from '@lend/entities/token/lib' +import { useTokenUsdRates } from '@/lend/entities/token/lib' import { FETCHING, PartialQueryResult, READY } from '@ui-kit/lib/queries' import { calculateChainTvl } from './tvl' import { useOneWayMarketMapping } from './chain-hooks' -import useStore from '@lend/store/useStore' -import { ChainId } from '@lend/types/lend.types' +import useStore from '@/lend/store/useStore' +import { ChainId } from '@/lend/types/lend.types' export const useTvl = (chainId: ChainId): PartialQueryResult => { const marketMapping = useOneWayMarketMapping({ chainId }).data diff --git a/apps/main/src/lend/entities/chain/tvl.ts b/apps/main/src/lend/entities/chain/tvl.ts index a1bc6db4e..36a2fb2ff 100644 --- a/apps/main/src/lend/entities/chain/tvl.ts +++ b/apps/main/src/lend/entities/chain/tvl.ts @@ -5,7 +5,7 @@ import { MarketsStatsTotalsMapper, MarketsStatsAMMBalancesMapper, MarketsTotalLiquidityMapper, -} from '@lend/types/lend.types' +} from '@/lend/types/lend.types' export function calculateChainTvl( marketMapping: IDict, diff --git a/apps/main/src/lend/entities/chain/validation.ts b/apps/main/src/lend/entities/chain/validation.ts index 9f5a9f19c..9fdde10e2 100644 --- a/apps/main/src/lend/entities/chain/validation.ts +++ b/apps/main/src/lend/entities/chain/validation.ts @@ -1,8 +1,8 @@ import { createValidationSuite } from '@ui-kit/lib/validation' import { enforce, group, test } from 'vest' import { ChainParams } from '@ui-kit/lib/model/query' -import useStore from '@lend/store/useStore' -import { ChainId } from '@lend/types/lend.types' +import useStore from '@/lend/store/useStore' +import { ChainId } from '@/lend/types/lend.types' export const chainValidationGroup = ({ chainId }: ChainParams) => group('chainValidation', () => { diff --git a/apps/main/src/lend/entities/token/api.ts b/apps/main/src/lend/entities/token/api.ts index 1173ac584..5a00a8d00 100644 --- a/apps/main/src/lend/entities/token/api.ts +++ b/apps/main/src/lend/entities/token/api.ts @@ -1,5 +1,5 @@ -import { TokenQuery } from '@lend/entities/token/index' -import useStore from '@lend/store/useStore' +import { TokenQuery } from '@/lend/entities/token/index' +import useStore from '@/lend/store/useStore' export const queryTokenUsdRate = async ({ tokenAddress }: TokenQuery): Promise => { const { api } = useStore.getState() diff --git a/apps/main/src/lend/entities/token/lib.ts b/apps/main/src/lend/entities/token/lib.ts index c9ef39c36..06529b287 100644 --- a/apps/main/src/lend/entities/token/lib.ts +++ b/apps/main/src/lend/entities/token/lib.ts @@ -1,4 +1,4 @@ -import { tokenUsdRate } from '@lend/entities/token/model' +import { tokenUsdRate } from '@/lend/entities/token/model' import { useQueryMapping } from '@ui-kit/lib/queries' import { ChainParams } from '@ui-kit/lib/model/query' diff --git a/apps/main/src/lend/entities/token/model/token-query.ts b/apps/main/src/lend/entities/token/model/token-query.ts index 22c7184d1..50160737a 100644 --- a/apps/main/src/lend/entities/token/model/token-query.ts +++ b/apps/main/src/lend/entities/token/model/token-query.ts @@ -1,5 +1,5 @@ -import { TokenParams } from '@lend/entities/token' -import { queryTokenUsdRate } from '@lend/entities/token/api' +import { TokenParams } from '@/lend/entities/token' +import { queryTokenUsdRate } from '@/lend/entities/token/api' import { queryFactory, rootKeys } from '@ui-kit/lib/model/query' import { tokenValidationSuite } from './validation' diff --git a/apps/main/src/lend/entities/token/model/validation.ts b/apps/main/src/lend/entities/token/model/validation.ts index 39fbf7654..df79ec426 100644 --- a/apps/main/src/lend/entities/token/model/validation.ts +++ b/apps/main/src/lend/entities/token/model/validation.ts @@ -1,6 +1,6 @@ import { enforce, group, test } from 'vest' -import { chainValidationGroup } from '@lend/entities/chain' -import type { TokenParams } from '@lend/entities/token/types' +import { chainValidationGroup } from '@/lend/entities/chain' +import type { TokenParams } from '@/lend/entities/token/types' import { createValidationSuite } from '@ui-kit/lib/validation' export const tokenValidationGroup = ({ chainId, tokenAddress }: TokenParams) => diff --git a/apps/main/src/lend/hooks/useAbiTotalSupply.tsx b/apps/main/src/lend/hooks/useAbiTotalSupply.tsx index 781029047..25da5a570 100644 --- a/apps/main/src/lend/hooks/useAbiTotalSupply.tsx +++ b/apps/main/src/lend/hooks/useAbiTotalSupply.tsx @@ -2,12 +2,12 @@ import type { Contract } from 'ethers' import { useCallback, useEffect, useState } from 'react' -import { INVALID_ADDRESS, REFRESH_INTERVAL } from '@lend/constants' +import { INVALID_ADDRESS, REFRESH_INTERVAL } from '@/lend/constants' import { weiToEther } from '@ui-kit/utils' -import useContract from '@lend/hooks/useContract' +import useContract from '@/lend/hooks/useContract' import usePageVisibleInterval from '@ui/hooks/usePageVisibleInterval' -import useStore from '@lend/store/useStore' -import { ChainId } from '@lend/types/lend.types' +import useStore from '@/lend/store/useStore' +import { ChainId } from '@/lend/types/lend.types' const useAbiTotalSupply = (rChainId: ChainId, contractAddress: string | undefined) => { const contract = useContract(rChainId, false, 'totalSupply', contractAddress) diff --git a/apps/main/src/lend/hooks/useCampaignRewardsMapper.tsx b/apps/main/src/lend/hooks/useCampaignRewardsMapper.tsx index 18a46de45..5763b733f 100644 --- a/apps/main/src/lend/hooks/useCampaignRewardsMapper.tsx +++ b/apps/main/src/lend/hooks/useCampaignRewardsMapper.tsx @@ -1,6 +1,6 @@ import { useMemo } from 'react' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' const useCampaignRewardsMapper = () => { const cached = useStore((state) => state.storeCache.campaignRewardsMapper) diff --git a/apps/main/src/lend/hooks/useContract.ts b/apps/main/src/lend/hooks/useContract.ts index b0aa267fa..b81a1e483 100644 --- a/apps/main/src/lend/hooks/useContract.ts +++ b/apps/main/src/lend/hooks/useContract.ts @@ -1,9 +1,9 @@ import { Contract, Interface, JsonRpcProvider } from 'ethers' import { useCallback, useEffect, useState } from 'react' -import networks from '@lend/networks' -import useStore from '@lend/store/useStore' -import { ChainId, Provider } from '@lend/types/lend.types' +import networks from '@/lend/networks' +import useStore from '@/lend/store/useStore' +import { ChainId, Provider } from '@/lend/types/lend.types' const useAbiGaugeTotalSupply = ( rChainId: ChainId, @@ -18,7 +18,7 @@ const useAbiGaugeTotalSupply = ( const getContract = useCallback( async (jsonModuleName: string, contractAddress: string, provider: Provider | JsonRpcProvider) => { try { - const abi = await import(`@lend/abis/${jsonModuleName}.json`).then((module) => module.default.abi) + const abi = await import(`@/lend/abis/${jsonModuleName}.json`).then((module) => module.default.abi) if (!abi) { console.error('cannot find abi') diff --git a/apps/main/src/lend/hooks/useMarketAlert.tsx b/apps/main/src/lend/hooks/useMarketAlert.tsx index 5f94a3f0d..95b568e8d 100644 --- a/apps/main/src/lend/hooks/useMarketAlert.tsx +++ b/apps/main/src/lend/hooks/useMarketAlert.tsx @@ -2,7 +2,7 @@ import type { TooltipProps } from '@ui/Tooltip/types' import React, { useMemo } from 'react' import { t } from '@lingui/macro' -import { AlertType, ChainId } from '@lend/types/lend.types' +import { AlertType, ChainId } from '@/lend/types/lend.types' export type MarketAlert = TooltipProps & { alertType: AlertType diff --git a/apps/main/src/lend/hooks/usePageOnMount.ts b/apps/main/src/lend/hooks/usePageOnMount.ts index 29b2e7f85..18a5f94f2 100644 --- a/apps/main/src/lend/hooks/usePageOnMount.ts +++ b/apps/main/src/lend/hooks/usePageOnMount.ts @@ -13,15 +13,15 @@ import { useSetLocale, } from '@ui-kit/features/connect-wallet' -import { CONNECT_STAGE, REFRESH_INTERVAL, ROUTE } from '@lend/constants' +import { CONNECT_STAGE, REFRESH_INTERVAL, ROUTE } from '@/lend/constants' import { dynamicActivate, updateAppLocale } from '@ui-kit/lib/i18n' -import { getStorageValue, setStorageValue } from '@lend/utils/utilsStorage' -import { getNetworkFromUrl, parseParams } from '@lend/utils/utilsRouter' -import { helpers } from '@lend/lib/apiLending' -import networks, { networksIdMapper } from '@lend/networks' -import useStore from '@lend/store/useStore' +import { getStorageValue, setStorageValue } from '@/lend/utils/utilsStorage' +import { getNetworkFromUrl, parseParams } from '@/lend/utils/utilsRouter' +import { helpers } from '@/lend/lib/apiLending' +import networks, { networksIdMapper } from '@/lend/networks' +import useStore from '@/lend/store/useStore' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId, PageProps, Wallet } from '@lend/types/lend.types' +import { ChainId, PageProps, Wallet } from '@/lend/types/lend.types' function usePageOnMount(params: Params, location: Location, navigate: NavigateFunction, chainIdNotRequired?: boolean) { const [{ wallet }, connect, disconnect] = useConnectWallet() diff --git a/apps/main/src/lend/hooks/useSearchTermMapper.tsx b/apps/main/src/lend/hooks/useSearchTermMapper.tsx index ca65337be..1a02e4f67 100644 --- a/apps/main/src/lend/hooks/useSearchTermMapper.tsx +++ b/apps/main/src/lend/hooks/useSearchTermMapper.tsx @@ -1,4 +1,4 @@ -import type { SearchTermMapper, SearchTermKey } from '@lend/components/PageMarketList/types' +import type { SearchTermMapper, SearchTermKey } from '@/lend/components/PageMarketList/types' import { t } from '@lingui/macro' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' diff --git a/apps/main/src/lend/hooks/useSupplyTotalApr.ts b/apps/main/src/lend/hooks/useSupplyTotalApr.ts index 5ff2b85b3..7864af7b5 100644 --- a/apps/main/src/lend/hooks/useSupplyTotalApr.ts +++ b/apps/main/src/lend/hooks/useSupplyTotalApr.ts @@ -1,11 +1,11 @@ import { useMemo } from 'react' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' -import { INVALID_ADDRESS } from '@lend/constants' +import { INVALID_ADDRESS } from '@/lend/constants' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { getTotalApr } from '@lend/utils/utilsRewards' -import { useOneWayMarket } from '@lend/entities/chain' -import { ChainId, MarketRates, RewardOther, MarketRewards } from '@lend/types/lend.types' +import { getTotalApr } from '@/lend/utils/utilsRewards' +import { useOneWayMarket } from '@/lend/entities/chain' +import { ChainId, MarketRates, RewardOther, MarketRewards } from '@/lend/types/lend.types' function useSupplyTotalApr(rChainId: ChainId, rOwmId: string) { const market = useOneWayMarket(rChainId, rOwmId).data diff --git a/apps/main/src/lend/hooks/useTitleMapper.tsx b/apps/main/src/lend/hooks/useTitleMapper.tsx index 399ec9528..ae48610bd 100644 --- a/apps/main/src/lend/hooks/useTitleMapper.tsx +++ b/apps/main/src/lend/hooks/useTitleMapper.tsx @@ -3,7 +3,7 @@ import { t } from '@lingui/macro' import Box from '@ui/Box' import ExternalLink from 'ui/src/Link/ExternalLink' -import { TitleMapper } from '@lend/types/lend.types' +import { TitleMapper } from '@/lend/types/lend.types' const useTitleMapper = (): TitleMapper => ({ isInMarket: { title: '' }, diff --git a/apps/main/src/lend/hooks/useVaultShares.ts b/apps/main/src/lend/hooks/useVaultShares.ts index 39f7a9e8a..326e41b45 100644 --- a/apps/main/src/lend/hooks/useVaultShares.ts +++ b/apps/main/src/lend/hooks/useVaultShares.ts @@ -1,10 +1,10 @@ import { useEffect, useMemo } from 'react' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import { FORMAT_OPTIONS, formatNumber, formatNumberWithPrecision } from '@ui/utils' -import { useTokenUsdRate } from '@lend/entities/token' -import { useOneWayMarket } from '@lend/entities/chain' -import { ChainId } from '@lend/types/lend.types' +import { useTokenUsdRate } from '@/lend/entities/token' +import { useOneWayMarket } from '@/lend/entities/chain' +import { ChainId } from '@/lend/types/lend.types' function useVaultShares(rChainId: ChainId, rOwmId: string, vaultShares: string | number | undefined = '0') { const market = useOneWayMarket(rChainId, rOwmId).data diff --git a/apps/main/src/lend/layout/Header.tsx b/apps/main/src/lend/layout/Header.tsx index a7c279b7c..6dbef465f 100644 --- a/apps/main/src/lend/layout/Header.tsx +++ b/apps/main/src/lend/layout/Header.tsx @@ -1,20 +1,20 @@ import { useCallback, useMemo, useRef } from 'react' import { t } from '@lingui/macro' import { useLocation, useNavigate } from 'react-router-dom' -import { CONNECT_STAGE } from '@lend/constants' -import { getParamsFromUrl, getRestFullPathname, getRestPartialPathname } from '@lend/utils/utilsRouter' +import { CONNECT_STAGE } from '@/lend/constants' +import { getParamsFromUrl, getRestFullPathname, getRestPartialPathname } from '@/lend/utils/utilsRouter' import { _parseRouteAndIsActive, FORMAT_OPTIONS, formatNumber, isLoading } from '@ui/utils' import { getWalletSignerAddress, useConnectWallet } from '@ui-kit/features/connect-wallet' -import networks, { visibleNetworksList } from '@lend/networks' -import useStore from '@lend/store/useStore' -import { useTvl } from '@lend/entities/chain' +import networks, { visibleNetworksList } from '@/lend/networks' +import useStore from '@/lend/store/useStore' +import { useTvl } from '@/lend/entities/chain' import { Header as NewHeader, useHeaderHeight } from '@ui-kit/widgets/Header' import useMediaQuery from '@mui/material/useMediaQuery' import { type Theme } from '@mui/material/styles' import type { NavigationSection } from '@ui-kit/widgets/Header/types' import { APP_LINK } from '@ui-kit/shared/routes' import { GlobalBannerProps } from '@ui/Banner/GlobalBanner' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' type HeaderProps = { chainId: ChainId; sections: NavigationSection[]; BannerProps: GlobalBannerProps } diff --git a/apps/main/src/lend/layout/Settings.tsx b/apps/main/src/lend/layout/Settings.tsx index 3b57e0b3d..9d49c36c7 100644 --- a/apps/main/src/lend/layout/Settings.tsx +++ b/apps/main/src/lend/layout/Settings.tsx @@ -1,6 +1,6 @@ import styled, { keyframes } from 'styled-components' -import useStore from '@lend/store/useStore' +import useStore from '@/lend/store/useStore' import Icon from '@ui/Icon' import Button from '@ui/Button' diff --git a/apps/main/src/lend/layout/index.tsx b/apps/main/src/lend/layout/index.tsx index 2bcd76943..edaaab886 100644 --- a/apps/main/src/lend/layout/index.tsx +++ b/apps/main/src/lend/layout/index.tsx @@ -1,13 +1,13 @@ import React, { useEffect, useMemo, useRef, useState } from 'react' import styled from 'styled-components' -import { CONNECT_STAGE, ROUTE } from '@lend/constants' -import { layoutHeightKeys } from '@lend/store/createLayoutSlice' -import { getNetworkFromUrl } from '@lend/utils/utilsRouter' +import { CONNECT_STAGE, ROUTE } from '@/lend/constants' +import { layoutHeightKeys } from '@/lend/store/createLayoutSlice' +import { getNetworkFromUrl } from '@/lend/utils/utilsRouter' import { isFailure, isLoading } from '@ui/utils' import { getWalletChainId, useConnectWallet } from '@ui-kit/features/connect-wallet' -import useStore from '@lend/store/useStore' -import Header from '@lend/layout/Header' +import useStore from '@/lend/store/useStore' +import Header from '@/lend/layout/Header' import { Footer } from '@ui-kit/widgets/Footer' import { useHeightResizeObserver } from '@ui/hooks' import { t } from '@lingui/macro' diff --git a/apps/main/src/lend/lib/apiLending.ts b/apps/main/src/lend/lib/apiLending.ts index 3c2df8622..3cd871514 100644 --- a/apps/main/src/lend/lib/apiLending.ts +++ b/apps/main/src/lend/lib/apiLending.ts @@ -1,16 +1,16 @@ -import type { LiqRange } from '@lend/store/types' +import type { LiqRange } from '@/lend/store/types' import type { StepStatus } from '@ui/Stepper/types' import PromisePool from '@supercharge/promise-pool' import cloneDeep from 'lodash/cloneDeep' import sortBy from 'lodash/sortBy' -import { INVALID_ADDRESS } from '@lend/constants' -import { fulfilledValue, getErrorMessage, log } from '@lend/utils/helpers' +import { INVALID_ADDRESS } from '@/lend/constants' +import { fulfilledValue, getErrorMessage, log } from '@/lend/utils/helpers' import { BN, shortenAccount } from '@ui/utils' -import networks from '@lend/networks' +import networks from '@/lend/networks' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { USE_API } from '@lend/shared/config' +import { USE_API } from '@/lend/shared/config' import { ChainId, Api, @@ -45,7 +45,7 @@ import { UserMarketBalances, FutureRates, Wallet, -} from '@lend/types/lend.types' +} from '@/lend/types/lend.types' export const helpers = { initApi: async (chainId: ChainId, wallet: Wallet) => { diff --git a/apps/main/src/lend/networks.ts b/apps/main/src/lend/networks.ts index 2b8d1d334..564a4f345 100644 --- a/apps/main/src/lend/networks.ts +++ b/apps/main/src/lend/networks.ts @@ -1,7 +1,7 @@ import sortBy from 'lodash/sortBy' import { getBaseNetworksConfig, NETWORK_BASE_CONFIG } from '@ui/utils' import { ChainOption } from '@ui-kit/features/switch-chain' -import { ChainId, NetworkEnum, NetworkConfig } from '@lend/types/lend.types' +import { ChainId, NetworkEnum, NetworkConfig } from '@/lend/types/lend.types' const DEFAULT_NETWORK_CONFIG = { hideMarketsInUI: {}, diff --git a/apps/main/src/lend/store/createAppSlice.ts b/apps/main/src/lend/store/createAppSlice.ts index 451795a4c..08291ec4a 100644 --- a/apps/main/src/lend/store/createAppSlice.ts +++ b/apps/main/src/lend/store/createAppSlice.ts @@ -1,11 +1,11 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import type { ConnectState } from '@ui/utils' import produce from 'immer' import { log } from '@ui-kit/lib/logging' import isEqual from 'lodash/isEqual' -import { prefetchMarkets } from '@lend/entities/chain/chain-query' -import { Api, RouterProps, Wallet } from '@lend/types/lend.types' +import { prefetchMarkets } from '@/lend/entities/chain/chain-query' +import { Api, RouterProps, Wallet } from '@/lend/types/lend.types' export type DefaultStateKeys = keyof typeof DEFAULT_STATE export type SliceKey = keyof State | '' diff --git a/apps/main/src/lend/store/createCacheSlice.ts b/apps/main/src/lend/store/createCacheSlice.ts index 582d26ca0..d24618b8d 100644 --- a/apps/main/src/lend/store/createCacheSlice.ts +++ b/apps/main/src/lend/store/createCacheSlice.ts @@ -1,8 +1,8 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import type { CampaignRewardsMapper } from '@ui/CampaignRewards/types' -import { sleep } from '@lend/utils/helpers' +import { sleep } from '@/lend/utils/helpers' import cloneDeep from 'lodash/cloneDeep' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createCampaignRewardsSlice.ts b/apps/main/src/lend/store/createCampaignRewardsSlice.ts index f6bcfa36b..bf1ce0015 100644 --- a/apps/main/src/lend/store/createCampaignRewardsSlice.ts +++ b/apps/main/src/lend/store/createCampaignRewardsSlice.ts @@ -1,11 +1,11 @@ -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import type { GetState, SetState } from 'zustand' import { CampaignRewardsItem, CampaignRewardsPool, CampaignRewardsMapper } from 'ui/src/CampaignRewards/types' import produce from 'immer' import campaigns from '@external-rewards' -import networks from '@lend/networks' -import { ChainId } from '@lend/types/lend.types' +import networks from '@/lend/networks' +import { ChainId } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createChartBandsStore.tsx b/apps/main/src/lend/store/createChartBandsStore.tsx index b98343d96..ac4010291 100644 --- a/apps/main/src/lend/store/createChartBandsStore.tsx +++ b/apps/main/src/lend/store/createChartBandsStore.tsx @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import cloneDeep from 'lodash/cloneDeep' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createGasSlice.ts b/apps/main/src/lend/store/createGasSlice.ts index 69e5b4f42..653de4d19 100644 --- a/apps/main/src/lend/store/createGasSlice.ts +++ b/apps/main/src/lend/store/createGasSlice.ts @@ -1,15 +1,15 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { GasInfo } from '@lend/store/types' +import type { State } from '@/lend/store/useStore' +import type { GasInfo } from '@/lend/store/types' import cloneDeep from 'lodash/cloneDeep' import { getEthereumCustomFeeDataValues } from '@ui/utils/utilsGas' import { gweiToWai } from '@ui-kit/utils' -import { httpFetcher, log } from '@lend/utils/helpers' -import lendingApi from '@lend/lib/apiLending' -import networks from '@lend/networks' -import { Api, Provider } from '@lend/types/lend.types' +import { httpFetcher, log } from '@/lend/utils/helpers' +import lendingApi from '@/lend/lib/apiLending' +import networks from '@/lend/networks' +import { Api, Provider } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createIntegrationsSlice.ts b/apps/main/src/lend/store/createIntegrationsSlice.ts index 01283c6ba..8dd714c24 100644 --- a/apps/main/src/lend/store/createIntegrationsSlice.ts +++ b/apps/main/src/lend/store/createIntegrationsSlice.ts @@ -1,15 +1,15 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FilterKey, FormStatus, FormValues } from '@lend/components/PageIntegrations/types' +import type { State } from '@/lend/store/useStore' +import type { FilterKey, FormStatus, FormValues } from '@/lend/components/PageIntegrations/types' import type { IntegrationApp, IntegrationsTags } from '@ui/Integration/types' import Fuse from 'fuse.js' import cloneDeep from 'lodash/cloneDeep' import sortBy from 'lodash/sortBy' -import { fulfilledValue, httpFetcher } from '@lend/utils/helpers' -import networks from '@lend/networks' -import { ChainId } from '@lend/types/lend.types' +import { fulfilledValue, httpFetcher } from '@/lend/utils/helpers' +import networks from '@/lend/networks' +import { ChainId } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createLayoutSlice.ts b/apps/main/src/lend/store/createLayoutSlice.ts index a89da55bb..36c8f79a3 100644 --- a/apps/main/src/lend/store/createLayoutSlice.ts +++ b/apps/main/src/lend/store/createLayoutSlice.ts @@ -1,10 +1,10 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { LayoutHeight } from '@lend/store/types' +import type { State } from '@/lend/store/useStore' +import type { LayoutHeight } from '@/lend/store/types' import produce from 'immer' import cloneDeep from 'lodash/cloneDeep' -import { PageWidthClassName } from '@lend/types/lend.types' +import { PageWidthClassName } from '@/lend/types/lend.types' export type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createLoanBorrowMoreSlice.ts b/apps/main/src/lend/store/createLoanBorrowMoreSlice.ts index a78bd4ec2..b25af8a58 100644 --- a/apps/main/src/lend/store/createLoanBorrowMoreSlice.ts +++ b/apps/main/src/lend/store/createLoanBorrowMoreSlice.ts @@ -1,24 +1,24 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormDetailInfo, FormEstGas } from '@lend/components/PageLoanManage/types' +import type { State } from '@/lend/store/useStore' +import type { FormDetailInfo, FormEstGas } from '@/lend/components/PageLoanManage/types' import type { FormDetailInfoLeverage, FormStatus, FormValues, -} from '@lend/components/PageLoanManage/LoanBorrowMore/types' +} from '@/lend/components/PageLoanManage/LoanBorrowMore/types' import cloneDeep from 'lodash/cloneDeep' -import { DEFAULT_FORM_EST_GAS } from '@lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_EST_GAS } from '@/lend/components/PageLoanManage/utils' import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, _parseValues, -} from '@lend/components/PageLoanManage/LoanBorrowMore/utils' -import { _parseActiveKey } from '@lend/utils/helpers' -import apiLending, { helpers } from '@lend/lib/apiLending' +} from '@/lend/components/PageLoanManage/LoanBorrowMore/utils' +import { _parseActiveKey } from '@/lend/utils/helpers' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId, Api } from '@lend/types/lend.types' +import { ChainId, Api } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createLoanCollateralAddSlice.ts b/apps/main/src/lend/store/createLoanCollateralAddSlice.ts index 5b5268800..52c24260a 100644 --- a/apps/main/src/lend/store/createLoanCollateralAddSlice.ts +++ b/apps/main/src/lend/store/createLoanCollateralAddSlice.ts @@ -1,15 +1,15 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormDetailInfo, FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@lend/components/PageLoanManage/LoanCollateralAdd/types' +import type { State } from '@/lend/store/useStore' +import type { FormDetailInfo, FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/lend/components/PageLoanManage/LoanCollateralAdd/types' import cloneDeep from 'lodash/cloneDeep' -import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' -import { _parseActiveKey } from '@lend/utils/helpers' -import apiLending, { helpers } from '@lend/lib/apiLending' +import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' +import { _parseActiveKey } from '@/lend/utils/helpers' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api } from '@lend/types/lend.types' +import { Api } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createLoanCollateralRemoveSlice.ts b/apps/main/src/lend/store/createLoanCollateralRemoveSlice.ts index 5ee19f78e..9eb73425b 100644 --- a/apps/main/src/lend/store/createLoanCollateralRemoveSlice.ts +++ b/apps/main/src/lend/store/createLoanCollateralRemoveSlice.ts @@ -1,15 +1,15 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormDetailInfo, FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@lend/components/PageLoanManage/LoanCollateralRemove/types' +import type { State } from '@/lend/store/useStore' +import type { FormDetailInfo, FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/lend/components/PageLoanManage/LoanCollateralRemove/types' import cloneDeep from 'lodash/cloneDeep' -import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' -import { _parseActiveKey } from '@lend/utils/helpers' -import apiLending, { helpers } from '@lend/lib/apiLending' +import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' +import { _parseActiveKey } from '@/lend/utils/helpers' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api } from '@lend/types/lend.types' +import { Api } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createLoanCreateSlice.ts b/apps/main/src/lend/store/createLoanCreateSlice.ts index b888535c6..db4ecf7ec 100644 --- a/apps/main/src/lend/store/createLoanCreateSlice.ts +++ b/apps/main/src/lend/store/createLoanCreateSlice.ts @@ -1,22 +1,22 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { LiqRange, LiqRangesMapper } from '@lend/store/types' +import type { State } from '@/lend/store/useStore' +import type { LiqRange, LiqRangesMapper } from '@/lend/store/types' import type { FormEstGas, FormStatus, FormValues, DetailInfo, DetailInfoLeverage, -} from '@lend/components/PageLoanCreate/types' +} from '@/lend/components/PageLoanCreate/types' import cloneDeep from 'lodash/cloneDeep' -import { DEFAULT_FORM_EST_GAS } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, _parseValue } from '@lend/components/PageLoanCreate/utils' -import { _parseActiveKey } from '@lend/utils/helpers' -import apiLending, { helpers } from '@lend/lib/apiLending' +import { DEFAULT_FORM_EST_GAS } from '@/lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, _parseValue } from '@/lend/components/PageLoanCreate/utils' +import { _parseActiveKey } from '@/lend/utils/helpers' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId, Api } from '@lend/types/lend.types' +import { ChainId, Api } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createLoanRepaySlice.ts b/apps/main/src/lend/store/createLoanRepaySlice.ts index a2e6683f0..a994f834c 100644 --- a/apps/main/src/lend/store/createLoanRepaySlice.ts +++ b/apps/main/src/lend/store/createLoanRepaySlice.ts @@ -1,17 +1,21 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormDetailInfo, FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormDetailInfoLeverage, FormStatus, FormValues } from '@lend/components/PageLoanManage/LoanRepay/types' +import type { State } from '@/lend/store/useStore' +import type { FormDetailInfo, FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormDetailInfoLeverage, FormStatus, FormValues } from '@/lend/components/PageLoanManage/LoanRepay/types' import cloneDeep from 'lodash/cloneDeep' -import { DEFAULT_FORM_EST_GAS } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_VALUES, DEFAULT_FORM_STATUS, _parseValues } from '@lend/components/PageLoanManage/LoanRepay/utils' -import { FormError } from '@lend/components/AlertFormError' -import { _parseActiveKey } from '@lend/utils/helpers' -import apiLending, { helpers } from '@lend/lib/apiLending' +import { DEFAULT_FORM_EST_GAS } from '@/lend/components/PageLoanManage/utils' +import { + DEFAULT_FORM_VALUES, + DEFAULT_FORM_STATUS, + _parseValues, +} from '@/lend/components/PageLoanManage/LoanRepay/utils' +import { FormError } from '@/lend/components/AlertFormError' +import { _parseActiveKey } from '@/lend/utils/helpers' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api, UserLoanState } from '@lend/types/lend.types' +import { Api, UserLoanState } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createLoanSelfLiquidationSlice.ts b/apps/main/src/lend/store/createLoanSelfLiquidationSlice.ts index f98ee4520..0332fc2cc 100644 --- a/apps/main/src/lend/store/createLoanSelfLiquidationSlice.ts +++ b/apps/main/src/lend/store/createLoanSelfLiquidationSlice.ts @@ -1,16 +1,16 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormStatus } from '@lend/components/PageLoanManage/LoanSelfLiquidation/types' +import type { State } from '@/lend/store/useStore' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormStatus } from '@/lend/components/PageLoanManage/LoanSelfLiquidation/types' import { isGreaterThanOrEqualTo } from '@ui-kit/utils' import cloneDeep from 'lodash/cloneDeep' -import { FormWarning } from '@lend/components/AlertFormWarning' -import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' -import apiLending from '@lend/lib/apiLending' +import { FormWarning } from '@/lend/components/AlertFormWarning' +import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' +import apiLending from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api, FutureRates } from '@lend/types/lend.types' +import { Api, FutureRates } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createMarketListSlice.ts b/apps/main/src/lend/store/createMarketListSlice.ts index 0b1e25592..48f5466ab 100644 --- a/apps/main/src/lend/store/createMarketListSlice.ts +++ b/apps/main/src/lend/store/createMarketListSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import type { FilterTypeKey, FormStatus, @@ -7,22 +7,22 @@ import type { SearchParams, SearchTermResult, TableSettings, -} from '@lend/components/PageMarketList/types' +} from '@/lend/components/PageMarketList/types' import chunk from 'lodash/chunk' import orderBy from 'lodash/orderBy' import sortByFn from 'lodash/sortBy' import uniqBy from 'lodash/uniqBy' -import { _getMarketList, DEFAULT_FORM_STATUS, parseSearchTermResults } from '@lend/components/PageMarketList/utils' -import { SEARCH_TERM } from '@lend/hooks/useSearchTermMapper' -import { TITLE } from '@lend/constants' -import { getTotalApr } from '@lend/utils/utilsRewards' -import { helpers } from '@lend/lib/apiLending' +import { _getMarketList, DEFAULT_FORM_STATUS, parseSearchTermResults } from '@/lend/components/PageMarketList/utils' +import { SEARCH_TERM } from '@/lend/hooks/useSearchTermMapper' +import { TITLE } from '@/lend/constants' +import { getTotalApr } from '@/lend/utils/utilsRewards' +import { helpers } from '@/lend/lib/apiLending' import { searchByText } from '@ui-kit/utils' -import { sleep } from '@lend/utils/helpers' -import networks from '@lend/networks' -import { getTokenUsdRateQueryData } from '@lend/entities/token' +import { sleep } from '@/lend/utils/helpers' +import networks from '@/lend/networks' +import { getTokenUsdRateQueryData } from '@/lend/entities/token' import { IDict } from '@curvefi/lending-api/lib/interfaces' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { logQuery, logSuccess } from '@ui-kit/lib' @@ -35,7 +35,7 @@ import { MarketsRewardsMapper, Order, TitleKey, -} from '@lend/types/lend.types' +} from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createMarketsSlice.ts b/apps/main/src/lend/store/createMarketsSlice.ts index 29e3745c4..91f15e4b1 100644 --- a/apps/main/src/lend/store/createMarketsSlice.ts +++ b/apps/main/src/lend/store/createMarketsSlice.ts @@ -1,7 +1,7 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import { getErrorMessage } from '@lend/utils/helpers' -import apiLending from '@lend/lib/apiLending' +import type { State } from '@/lend/store/useStore' +import { getErrorMessage } from '@/lend/utils/helpers' +import apiLending from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { ChainId, @@ -18,7 +18,7 @@ import { MarketsTotalCollateralValueMapper, MarketsRewardsMapper, MarketDetailsView, -} from '@lend/types/lend.types' +} from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createOhlcChartSlice.ts b/apps/main/src/lend/store/createOhlcChartSlice.ts index b23e26d1c..90df82c06 100644 --- a/apps/main/src/lend/store/createOhlcChartSlice.ts +++ b/apps/main/src/lend/store/createOhlcChartSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import { getAddress } from 'ethers' import type { TimeOptions, @@ -18,9 +18,9 @@ import type { UTCTimestamp } from 'lightweight-charts' import produce from 'immer' -import networks from '@lend/networks' +import networks from '@/lend/networks' import { convertToLocaleTimestamp } from '@ui/Chart/utils' -import { ChainId } from '@lend/types/lend.types' +import { ChainId } from '@/lend/types/lend.types' type SliceState = { chartLlammaOhlc: { diff --git a/apps/main/src/lend/store/createTokensSlice.ts b/apps/main/src/lend/store/createTokensSlice.ts index 395774674..439e2c6a2 100644 --- a/apps/main/src/lend/store/createTokensSlice.ts +++ b/apps/main/src/lend/store/createTokensSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import cloneDeep from 'lodash/cloneDeep' diff --git a/apps/main/src/lend/store/createUserSlice.ts b/apps/main/src/lend/store/createUserSlice.ts index 62ecdc9f0..61cf04f9f 100644 --- a/apps/main/src/lend/store/createUserSlice.ts +++ b/apps/main/src/lend/store/createUserSlice.ts @@ -1,9 +1,9 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import cloneDeep from 'lodash/cloneDeep' -import apiLending, { helpers } from '@lend/lib/apiLending' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { log } from '@ui-kit/lib/logging' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' import { @@ -17,7 +17,7 @@ import { UsersLoansExistsMapper, UserMarketBalances, UsersMarketsBalancesMapper, -} from '@lend/types/lend.types' +} from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createVaultClaimSlice.ts b/apps/main/src/lend/store/createVaultClaimSlice.ts index 06abaec7e..0732de384 100644 --- a/apps/main/src/lend/store/createVaultClaimSlice.ts +++ b/apps/main/src/lend/store/createVaultClaimSlice.ts @@ -1,15 +1,15 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormStatus, RewardType } from '@lend/components/PageVault/VaultClaim/types' +import type { State } from '@/lend/store/useStore' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormStatus, RewardType } from '@/lend/components/PageVault/VaultClaim/types' import cloneDeep from 'lodash/cloneDeep' import merge from 'lodash/merge' -import { DEFAULT_FORM_STATUS } from '@lend/components/PageVault/VaultClaim/utils' -import apiLending from '@lend/lib/apiLending' +import { DEFAULT_FORM_STATUS } from '@/lend/components/PageVault/VaultClaim/utils' +import apiLending from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api, MarketClaimable } from '@lend/types/lend.types' +import { Api, MarketClaimable } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/createVaultDepositMintSlice.ts b/apps/main/src/lend/store/createVaultDepositMintSlice.ts index bcebd41ae..8a695b28c 100644 --- a/apps/main/src/lend/store/createVaultDepositMintSlice.ts +++ b/apps/main/src/lend/store/createVaultDepositMintSlice.ts @@ -1,16 +1,16 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@lend/components/PageVault/VaultDepositMint/types' +import type { State } from '@/lend/store/useStore' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/lend/components/PageVault/VaultDepositMint/types' import cloneDeep from 'lodash/cloneDeep' import merge from 'lodash/merge' -import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@lend/components/PageVault/VaultDepositMint/utils' -import apiLending, { helpers } from '@lend/lib/apiLending' +import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@/lend/components/PageVault/VaultDepositMint/utils' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId, Api, FutureRates } from '@lend/types/lend.types' +import { ChainId, Api, FutureRates } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE type FormType = string | null diff --git a/apps/main/src/lend/store/createVaultStakeSlice.ts b/apps/main/src/lend/store/createVaultStakeSlice.ts index 4918a156f..c1692070a 100644 --- a/apps/main/src/lend/store/createVaultStakeSlice.ts +++ b/apps/main/src/lend/store/createVaultStakeSlice.ts @@ -1,16 +1,16 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@lend/components/PageVault/VaultStake/types' +import type { State } from '@/lend/store/useStore' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/lend/components/PageVault/VaultStake/types' import cloneDeep from 'lodash/cloneDeep' import merge from 'lodash/merge' -import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@lend/components/PageVault/VaultStake/utils' -import apiLending, { helpers } from '@lend/lib/apiLending' +import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@/lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@/lend/components/PageVault/VaultStake/utils' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId, Api } from '@lend/types/lend.types' +import { ChainId, Api } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE type FormType = string | null diff --git a/apps/main/src/lend/store/createVaultUnstakeSlice.ts b/apps/main/src/lend/store/createVaultUnstakeSlice.ts index c056b2fd8..866b49f95 100644 --- a/apps/main/src/lend/store/createVaultUnstakeSlice.ts +++ b/apps/main/src/lend/store/createVaultUnstakeSlice.ts @@ -1,16 +1,16 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@lend/components/PageVault/VaultUnstake/types' +import type { State } from '@/lend/store/useStore' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/lend/components/PageVault/VaultUnstake/types' import cloneDeep from 'lodash/cloneDeep' import merge from 'lodash/merge' -import { DEFAULT_FORM_EST_GAS } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@lend/components/PageVault/VaultUnstake/utils' -import apiLending, { helpers } from '@lend/lib/apiLending' +import { DEFAULT_FORM_EST_GAS } from '@/lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@/lend/components/PageVault/VaultUnstake/utils' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId, Api } from '@lend/types/lend.types' +import { ChainId, Api } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE type FormType = string | null diff --git a/apps/main/src/lend/store/createVaultWithdrawRedeemSlice.ts b/apps/main/src/lend/store/createVaultWithdrawRedeemSlice.ts index 33c130cba..4d63eae15 100644 --- a/apps/main/src/lend/store/createVaultWithdrawRedeemSlice.ts +++ b/apps/main/src/lend/store/createVaultWithdrawRedeemSlice.ts @@ -1,17 +1,17 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' -import type { FormEstGas } from '@lend/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@lend/components/PageVault/VaultWithdrawRedeem/types' +import type { State } from '@/lend/store/useStore' +import type { FormEstGas } from '@/lend/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/lend/components/PageVault/VaultWithdrawRedeem/types' import cloneDeep from 'lodash/cloneDeep' import merge from 'lodash/merge' -import { DEFAULT_FORM_EST_GAS } from '@lend/components/PageLoanManage/utils' -import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@lend/components/PageVault/VaultWithdrawRedeem/utils' -import { _getMaxActiveKey } from '@lend/store/createVaultDepositMintSlice' -import apiLending, { helpers } from '@lend/lib/apiLending' +import { DEFAULT_FORM_EST_GAS } from '@/lend/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@/lend/components/PageVault/VaultWithdrawRedeem/utils' +import { _getMaxActiveKey } from '@/lend/store/createVaultDepositMintSlice' +import apiLending, { helpers } from '@/lend/lib/apiLending' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { ChainId, Api, FutureRates } from '@lend/types/lend.types' +import { ChainId, Api, FutureRates } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE type FormType = string | null diff --git a/apps/main/src/lend/store/createWalletSlice.ts b/apps/main/src/lend/store/createWalletSlice.ts index 6caae9c19..115f02c44 100644 --- a/apps/main/src/lend/store/createWalletSlice.ts +++ b/apps/main/src/lend/store/createWalletSlice.ts @@ -1,12 +1,12 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@lend/store/useStore' +import type { State } from '@/lend/store/useStore' import type { CustomNotification, NotificationType } from '@web3-onboard/core/dist/types' import type { OnboardAPI, UpdateNotification } from '@web3-onboard/core' import { isError } from 'ethers' import cloneDeep from 'lodash/cloneDeep' import { getWalletProvider } from '@ui-kit/features/connect-wallet' -import { Provider, Wallet } from '@lend/types/lend.types' +import { Provider, Wallet } from '@/lend/types/lend.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/lend/store/useStore.ts b/apps/main/src/lend/store/useStore.ts index 1f7ce900c..af13b2f22 100644 --- a/apps/main/src/lend/store/useStore.ts +++ b/apps/main/src/lend/store/useStore.ts @@ -4,30 +4,32 @@ import { create } from 'zustand' import { devtools, persist } from 'zustand/middleware' import merge from 'lodash/merge' -import createCacheSlice, { CacheSlice } from '@lend/store/createCacheSlice' -import createAppSlice, { AppSlice } from '@lend/store/createAppSlice' -import createLayoutSlice, { AppLayoutSlice } from '@lend/store/createLayoutSlice' -import createWalletSlice, { WalletSlice } from '@lend/store/createWalletSlice' -import createGasSlice, { GasSlice } from '@lend/store/createGasSlice' -import createTokensSlice, { TokensSlice } from '@lend/store/createTokensSlice' -import createMarketsSlice, { MarketsSlice } from '@lend/store/createMarketsSlice' -import createUserSlice, { UserSlice } from '@lend/store/createUserSlice' -import createMarketListSlice, { MarketListSlice } from '@lend/store/createMarketListSlice' -import createLoanCreate, { LoanCreateSlice } from '@lend/store/createLoanCreateSlice' -import createLoanCollateralRemoveSlice, { LoanCollateralRemoveSlice } from '@lend/store/createLoanCollateralRemoveSlice' -import createLoanCollateralAddSlice, { LoanCollateralAddSlice } from '@lend/store/createLoanCollateralAddSlice' -import createLoanRepaySlice, { LoanRepaySlice } from '@lend/store/createLoanRepaySlice' -import createLoanBorrowMoreSlice, { LoanBorrowMoreSlice } from '@lend/store/createLoanBorrowMoreSlice' -import createLoanSelfLiquidationSlice, { LoanSelfLiquidationSlice } from '@lend/store/createLoanSelfLiquidationSlice' -import createVaultDepositMintSlice, { VaultDepositMintSlice } from '@lend/store/createVaultDepositMintSlice' -import createVaultStakeSlice, { VaultStakeSlice } from '@lend/store/createVaultStakeSlice' -import createVaultWithdrawRedeemSlice, { VaultWithdrawRedeemSlice } from '@lend/store/createVaultWithdrawRedeemSlice' -import createVaultUnstakeSlice, { VaultUnstakeSlice } from '@lend/store/createVaultUnstakeSlice' -import createVaultClaimSlice, { VaultClaimSlice } from '@lend/store/createVaultClaimSlice' -import createChartBandsSlice, { ChartBandsSlice } from '@lend/store/createChartBandsStore' -import createIntegrationsSlice, { IntegrationsSlice } from '@lend/store/createIntegrationsSlice' -import createOhlcChartSlice, { OhlcChartSlice } from '@lend/store/createOhlcChartSlice' -import createCampaignRewardsSlice, { CampaignRewardsSlice } from '@lend/store/createCampaignRewardsSlice' +import createCacheSlice, { CacheSlice } from '@/lend/store/createCacheSlice' +import createAppSlice, { AppSlice } from '@/lend/store/createAppSlice' +import createLayoutSlice, { AppLayoutSlice } from '@/lend/store/createLayoutSlice' +import createWalletSlice, { WalletSlice } from '@/lend/store/createWalletSlice' +import createGasSlice, { GasSlice } from '@/lend/store/createGasSlice' +import createTokensSlice, { TokensSlice } from '@/lend/store/createTokensSlice' +import createMarketsSlice, { MarketsSlice } from '@/lend/store/createMarketsSlice' +import createUserSlice, { UserSlice } from '@/lend/store/createUserSlice' +import createMarketListSlice, { MarketListSlice } from '@/lend/store/createMarketListSlice' +import createLoanCreate, { LoanCreateSlice } from '@/lend/store/createLoanCreateSlice' +import createLoanCollateralRemoveSlice, { + LoanCollateralRemoveSlice, +} from '@/lend/store/createLoanCollateralRemoveSlice' +import createLoanCollateralAddSlice, { LoanCollateralAddSlice } from '@/lend/store/createLoanCollateralAddSlice' +import createLoanRepaySlice, { LoanRepaySlice } from '@/lend/store/createLoanRepaySlice' +import createLoanBorrowMoreSlice, { LoanBorrowMoreSlice } from '@/lend/store/createLoanBorrowMoreSlice' +import createLoanSelfLiquidationSlice, { LoanSelfLiquidationSlice } from '@/lend/store/createLoanSelfLiquidationSlice' +import createVaultDepositMintSlice, { VaultDepositMintSlice } from '@/lend/store/createVaultDepositMintSlice' +import createVaultStakeSlice, { VaultStakeSlice } from '@/lend/store/createVaultStakeSlice' +import createVaultWithdrawRedeemSlice, { VaultWithdrawRedeemSlice } from '@/lend/store/createVaultWithdrawRedeemSlice' +import createVaultUnstakeSlice, { VaultUnstakeSlice } from '@/lend/store/createVaultUnstakeSlice' +import createVaultClaimSlice, { VaultClaimSlice } from '@/lend/store/createVaultClaimSlice' +import createChartBandsSlice, { ChartBandsSlice } from '@/lend/store/createChartBandsStore' +import createIntegrationsSlice, { IntegrationsSlice } from '@/lend/store/createIntegrationsSlice' +import createOhlcChartSlice, { OhlcChartSlice } from '@/lend/store/createOhlcChartSlice' +import createCampaignRewardsSlice, { CampaignRewardsSlice } from '@/lend/store/createCampaignRewardsSlice' import type { PersistOptions } from 'zustand/middleware/persist' export type State = CacheSlice & diff --git a/apps/main/src/lend/types/lend.types.ts b/apps/main/src/lend/types/lend.types.ts index f4d34105f..e470c4906 100644 --- a/apps/main/src/lend/types/lend.types.ts +++ b/apps/main/src/lend/types/lend.types.ts @@ -7,7 +7,7 @@ import type { WalletState } from '@web3-onboard/core' import type lendingApi from '@curvefi/lending-api' import type { TooltipProps } from '@ui/Tooltip/types' import type { BaseConfig } from '@ui/utils' -import { TITLE } from '@lend/constants' +import { TITLE } from '@/lend/constants' import { ethers } from 'ethers' export type AlertType = 'info' | 'warning' | 'error' | 'danger' diff --git a/apps/main/src/lend/utils/helpers.ts b/apps/main/src/lend/utils/helpers.ts index 8381e58d1..ca4503882 100644 --- a/apps/main/src/lend/utils/helpers.ts +++ b/apps/main/src/lend/utils/helpers.ts @@ -1,6 +1,6 @@ import { t } from '@lingui/macro' import { OneWayMarketTemplate } from '@curvefi/lending-api/lib/markets' -import { Api } from '@lend/types/lend.types' +import { Api } from '@/lend/types/lend.types' export * from './utilsGasPrices' export * from './utilsRouter' diff --git a/apps/main/src/lend/utils/utilsGasPrices.ts b/apps/main/src/lend/utils/utilsGasPrices.ts index dc95fc463..f8ea06f33 100644 --- a/apps/main/src/lend/utils/utilsGasPrices.ts +++ b/apps/main/src/lend/utils/utilsGasPrices.ts @@ -1,6 +1,6 @@ -import { httpFetcher } from '@lend/utils/helpers' -import networks from '@lend/networks' -import { ChainId } from '@lend/types/lend.types' +import { httpFetcher } from '@/lend/utils/helpers' +import networks from '@/lend/networks' +import { ChainId } from '@/lend/types/lend.types' export type GasPrices = { eip1559Gas: { diff --git a/apps/main/src/lend/utils/utilsRewards.ts b/apps/main/src/lend/utils/utilsRewards.ts index 6211687cd..0e5144118 100644 --- a/apps/main/src/lend/utils/utilsRewards.ts +++ b/apps/main/src/lend/utils/utilsRewards.ts @@ -1,5 +1,5 @@ import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { RewardOther } from '@lend/types/lend.types' +import { RewardOther } from '@/lend/types/lend.types' export function getTotalApr(lendApr: number, crvBase: number, crvBoost: number, others: RewardOther[]) { const othersTotal = (others ?? []).reduce((prev, curr) => { diff --git a/apps/main/src/lend/utils/utilsRouter.ts b/apps/main/src/lend/utils/utilsRouter.ts index d5e3165f5..a1e8abab2 100644 --- a/apps/main/src/lend/utils/utilsRouter.ts +++ b/apps/main/src/lend/utils/utilsRouter.ts @@ -1,9 +1,9 @@ import type { Params } from 'react-router' import { DEFAULT_LOCALES, parseLocale } from '@ui-kit/lib/i18n' -import { ROUTE } from '@lend/constants' -import networks, { networksIdMapper } from '@lend/networks' +import { ROUTE } from '@/lend/constants' +import networks, { networksIdMapper } from '@/lend/networks' import { LEND_ROUTES } from '@ui-kit/shared/routes' -import { NetworkEnum, RouterParams } from '@lend/types/lend.types' +import { NetworkEnum, RouterParams } from '@/lend/types/lend.types' export function getPath({ locale = 'en', network = 'ethereum', ...rest }: Params, rerouteRoute: string) { const { parsedLocale } = parseLocale(locale) diff --git a/apps/main/src/loan/components/AdvancedSettings.tsx b/apps/main/src/loan/components/AdvancedSettings.tsx index 4f398095c..6b299a7d2 100644 --- a/apps/main/src/loan/components/AdvancedSettings.tsx +++ b/apps/main/src/loan/components/AdvancedSettings.tsx @@ -5,9 +5,9 @@ import { t } from '@lingui/macro' import React, { useEffect, useState } from 'react' import styled from 'styled-components' -import { delayAction } from '@loan/utils/helpers' +import { delayAction } from '@/loan/utils/helpers' import { formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import { Chip } from '@ui/Typography' import { Radio, RadioGroup } from '@ui/Radio' diff --git a/apps/main/src/loan/components/AlertFormWarning.tsx b/apps/main/src/loan/components/AlertFormWarning.tsx index 512e8fd4b..bfd728e4e 100644 --- a/apps/main/src/loan/components/AlertFormWarning.tsx +++ b/apps/main/src/loan/components/AlertFormWarning.tsx @@ -4,7 +4,7 @@ import { t } from '@lingui/macro' import React, { useMemo } from 'react' import AlertBox from '@ui/AlertBox' -import { AlertType } from '@loan/types/loan.types' +import { AlertType } from '@/loan/types/loan.types' const ALERT_FORM_WARNING_KEYS = { // loan deleverage diff --git a/apps/main/src/loan/components/ChartBandBalances/ChartBandBalancesSettings.tsx b/apps/main/src/loan/components/ChartBandBalances/ChartBandBalancesSettings.tsx index 6f50ccb8c..577154648 100644 --- a/apps/main/src/loan/components/ChartBandBalances/ChartBandBalancesSettings.tsx +++ b/apps/main/src/loan/components/ChartBandBalances/ChartBandBalancesSettings.tsx @@ -1,6 +1,6 @@ import React from 'react' -import ChartBandBalancesSettingsContent from '@loan/components/ChartBandBalances/ChartBandBalancesSettingsContent' +import ChartBandBalancesSettingsContent from '@/loan/components/ChartBandBalances/ChartBandBalancesSettingsContent' import Icon from '@ui/Icon' import Popover, { Popover2Dialog } from '@ui/Popover2' diff --git a/apps/main/src/loan/components/ChartBandBalances/ChartBandBalancesSettingsContent.tsx b/apps/main/src/loan/components/ChartBandBalances/ChartBandBalancesSettingsContent.tsx index 2439220b1..a486eedf9 100644 --- a/apps/main/src/loan/components/ChartBandBalances/ChartBandBalancesSettingsContent.tsx +++ b/apps/main/src/loan/components/ChartBandBalances/ChartBandBalancesSettingsContent.tsx @@ -3,7 +3,7 @@ import styled from 'styled-components' import React from 'react' import { breakpoints } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import Button from '@ui/Button' import TextCaption from '@ui/TextCaption' diff --git a/apps/main/src/loan/components/ChartBandBalances/index.tsx b/apps/main/src/loan/components/ChartBandBalances/index.tsx index 20f56b73d..a6e928a2f 100644 --- a/apps/main/src/loan/components/ChartBandBalances/index.tsx +++ b/apps/main/src/loan/components/ChartBandBalances/index.tsx @@ -1,5 +1,5 @@ -import type { PageLoanManageProps } from '@loan/components/PageLoanManage/types' -import type { BrushStartEndIndex } from '@loan/components/ChartBandBalances/types' +import type { PageLoanManageProps } from '@/loan/components/PageLoanManage/types' +import type { BrushStartEndIndex } from '@/loan/components/ChartBandBalances/types' import { t } from '@lingui/macro' import { @@ -20,14 +20,14 @@ import React, { useMemo } from 'react' import styled from 'styled-components' import { BN, FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { getTokenName } from '@loan/utils/utilsLoan' -import useStore from '@loan/store/useStore' +import { getTokenName } from '@/loan/utils/utilsLoan' +import useStore from '@/loan/store/useStore' -import ChartBandBalancesSettings from '@loan/components/ChartBandBalances/ChartBandBalancesSettings' -import ChartTooltip, { TipContent, TipIcon, TipTitle } from '@loan/components/ChartTooltip' +import ChartBandBalancesSettings from '@/loan/components/ChartBandBalances/ChartBandBalancesSettings' +import ChartTooltip, { TipContent, TipIcon, TipTitle } from '@/loan/components/ChartTooltip' import Box from '@ui/Box' import Spinner, { SpinnerWrapper } from '@ui/Spinner' -import { BandsBalancesData } from '@loan/types/loan.types' +import { BandsBalancesData } from '@/loan/types/loan.types' interface Props extends Pick { brushIndex: BrushStartEndIndex diff --git a/apps/main/src/loan/components/ChartLiquidationRange/index.tsx b/apps/main/src/loan/components/ChartLiquidationRange/index.tsx index bc4a68735..fbee1300a 100644 --- a/apps/main/src/loan/components/ChartLiquidationRange/index.tsx +++ b/apps/main/src/loan/components/ChartLiquidationRange/index.tsx @@ -16,8 +16,8 @@ import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import ChartTooltip, { TipContent, TipIcon, TipTitle } from '@loan/components/ChartTooltip' -import { HeathColorKey, Theme } from '@loan/types/loan.types' +import ChartTooltip, { TipContent, TipIcon, TipTitle } from '@/loan/components/ChartTooltip' +import { HeathColorKey, Theme } from '@/loan/types/loan.types' interface Props { data: { name: string; curr: number[]; new: number[]; oraclePrice: string; oraclePriceBand: number | null }[] diff --git a/apps/main/src/loan/components/ChartOhlcWrapper/LiquidityData.tsx b/apps/main/src/loan/components/ChartOhlcWrapper/LiquidityData.tsx index 73f94a169..18858574c 100644 --- a/apps/main/src/loan/components/ChartOhlcWrapper/LiquidityData.tsx +++ b/apps/main/src/loan/components/ChartOhlcWrapper/LiquidityData.tsx @@ -3,13 +3,13 @@ import { LiqudityDataProps } from './types' import styled from 'styled-components' import { t } from '@lingui/macro' -import networks from '@loan/networks' +import networks from '@/loan/networks' import { formatNumber, getFractionDigitsOptions } from '@ui/utils' -import { getImageBaseUrl } from '@loan/utils/utilsCurvejs' -import { convertFullTime, convertTime, convertTimeAgo } from '@loan/components/ChartOhlcWrapper/utils' +import { getImageBaseUrl } from '@/loan/utils/utilsCurvejs' +import { convertFullTime, convertTime, convertTimeAgo } from '@/loan/components/ChartOhlcWrapper/utils' import Box from '@ui/Box' -import TokenIcon from '@loan/components/TokenIcon' +import TokenIcon from '@/loan/components/TokenIcon' import { Chip } from '@ui/Typography' import Tooltip from '@ui/Tooltip' diff --git a/apps/main/src/loan/components/ChartOhlcWrapper/PoolActivity.tsx b/apps/main/src/loan/components/ChartOhlcWrapper/PoolActivity.tsx index da814ff0d..40d4b6933 100644 --- a/apps/main/src/loan/components/ChartOhlcWrapper/PoolActivity.tsx +++ b/apps/main/src/loan/components/ChartOhlcWrapper/PoolActivity.tsx @@ -4,14 +4,14 @@ import { useEffect, useState } from 'react' import { t } from '@lingui/macro' import styled from 'styled-components' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import Button from '@ui/Button/Button' import Icon from '@ui/Icon' -import TradesData from '@loan/components/ChartOhlcWrapper/TradesData' -import LiquidityData from '@loan/components/ChartOhlcWrapper/LiquidityData' -import { ChainId } from '@loan/types/loan.types' +import TradesData from '@/loan/components/ChartOhlcWrapper/TradesData' +import LiquidityData from '@/loan/components/ChartOhlcWrapper/LiquidityData' +import { ChainId } from '@/loan/types/loan.types' interface Props { poolAddress: string diff --git a/apps/main/src/loan/components/ChartOhlcWrapper/TradesData.tsx b/apps/main/src/loan/components/ChartOhlcWrapper/TradesData.tsx index a1de452bd..3e675918b 100644 --- a/apps/main/src/loan/components/ChartOhlcWrapper/TradesData.tsx +++ b/apps/main/src/loan/components/ChartOhlcWrapper/TradesData.tsx @@ -2,13 +2,13 @@ import { TradesDataProps } from './types' import styled from 'styled-components' -import networks from '@loan/networks' +import networks from '@/loan/networks' import { formatNumber, getFractionDigitsOptions } from '@ui/utils' -import { getImageBaseUrl } from '@loan/utils/utilsCurvejs' -import { convertFullTime, convertTime, convertTimeAgo } from '@loan/components/ChartOhlcWrapper/utils' +import { getImageBaseUrl } from '@/loan/utils/utilsCurvejs' +import { convertFullTime, convertTime, convertTimeAgo } from '@/loan/components/ChartOhlcWrapper/utils' import Box from '@ui/Box' -import TokenIcon from '@loan/components/TokenIcon' +import TokenIcon from '@/loan/components/TokenIcon' import { Chip } from '@ui/Typography' import Tooltip from '@ui/Tooltip' diff --git a/apps/main/src/loan/components/ChartOhlcWrapper/index.tsx b/apps/main/src/loan/components/ChartOhlcWrapper/index.tsx index 31839aa68..864be3c5c 100644 --- a/apps/main/src/loan/components/ChartOhlcWrapper/index.tsx +++ b/apps/main/src/loan/components/ChartOhlcWrapper/index.tsx @@ -5,14 +5,14 @@ import { useEffect, useState, useMemo, useCallback } from 'react' import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import { getThreeHundredResultsAgo, subtractTimeUnit } from '@ui/Chart/utils' import Button from '@ui/Button' import ChartWrapper from '@ui/Chart' import Icon from '@ui/Icon' import Box from '@ui/Box' -import PoolActivity from '@loan/components/ChartOhlcWrapper/PoolActivity' +import PoolActivity from '@/loan/components/ChartOhlcWrapper/PoolActivity' import { useUserProfileStore } from '@ui-kit/features/user-profile' const ChartOhlcWrapper: React.FC = ({ rChainId, llamma, llammaId }) => { diff --git a/apps/main/src/loan/components/ChartOhlcWrapper/types.ts b/apps/main/src/loan/components/ChartOhlcWrapper/types.ts index 3d6e6f656..6c6b0403c 100644 --- a/apps/main/src/loan/components/ChartOhlcWrapper/types.ts +++ b/apps/main/src/loan/components/ChartOhlcWrapper/types.ts @@ -1,5 +1,5 @@ import type { LlammaControllerEvent, LlammaTradeEvent } from '@ui/Chart/types' -import { ChainId, Llamma } from '@loan/types/loan.types' +import { ChainId, Llamma } from '@/loan/types/loan.types' export type LlammaLiquidityCoins = { crvusd: { diff --git a/apps/main/src/loan/components/ChipCollateral.tsx b/apps/main/src/loan/components/ChipCollateral.tsx index 8b9476757..2dcb88ec1 100644 --- a/apps/main/src/loan/components/ChipCollateral.tsx +++ b/apps/main/src/loan/components/ChipCollateral.tsx @@ -5,7 +5,7 @@ import { useMemo, useRef } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { copyToClipboard, shortenTokenAddress } from '@loan/utils/helpers' +import { copyToClipboard, shortenTokenAddress } from '@/loan/utils/helpers' import Icon from '@ui/Icon' interface ButtonProps extends AriaButtonProps { diff --git a/apps/main/src/loan/components/CollateralLabelNameAddress.tsx b/apps/main/src/loan/components/CollateralLabelNameAddress.tsx index c1ab31c84..c370e97cd 100644 --- a/apps/main/src/loan/components/CollateralLabelNameAddress.tsx +++ b/apps/main/src/loan/components/CollateralLabelNameAddress.tsx @@ -5,7 +5,7 @@ import { useMemo, useRef } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { copyToClipboard, shortenTokenAddress } from '@loan/utils/helpers' +import { copyToClipboard, shortenTokenAddress } from '@/loan/utils/helpers' import Icon from '@ui/Icon' diff --git a/apps/main/src/loan/components/ConnectWallet.tsx b/apps/main/src/loan/components/ConnectWallet.tsx index 758facc2f..c4aafe02e 100644 --- a/apps/main/src/loan/components/ConnectWallet.tsx +++ b/apps/main/src/loan/components/ConnectWallet.tsx @@ -1,7 +1,7 @@ import { isLoading } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import { CONNECT_STAGE } from '@loan/constants' +import { CONNECT_STAGE } from '@/loan/constants' import ConnectWalletPrompt from '@ui/ConnectWalletPrompt' import { useUserProfileStore } from '@ui-kit/features/user-profile' diff --git a/apps/main/src/loan/components/DetailInfoBorrowRate.tsx b/apps/main/src/loan/components/DetailInfoBorrowRate.tsx index c91679b7e..8c79285a3 100644 --- a/apps/main/src/loan/components/DetailInfoBorrowRate.tsx +++ b/apps/main/src/loan/components/DetailInfoBorrowRate.tsx @@ -5,7 +5,7 @@ import isUndefined from 'lodash/isUndefined' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' -import { LoanParameter } from '@loan/types/loan.types' +import { LoanParameter } from '@/loan/types/loan.types' interface Props { parameters: LoanParameter | undefined diff --git a/apps/main/src/loan/components/DetailInfoEstimateGas.tsx b/apps/main/src/loan/components/DetailInfoEstimateGas.tsx index 66b4f3c37..f705471eb 100644 --- a/apps/main/src/loan/components/DetailInfoEstimateGas.tsx +++ b/apps/main/src/loan/components/DetailInfoEstimateGas.tsx @@ -5,12 +5,12 @@ import styled from 'styled-components' import { BN, FORMAT_OPTIONS, formatNumber } from '@ui/utils' import { gweiToEther, weiToGwei } from '@ui-kit/utils' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' import DetailInfo from '@ui/DetailInfo' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import { ChainId } from '@loan/types/loan.types' +import { ChainId } from '@/loan/types/loan.types' export type StepProgress = { active: number diff --git a/apps/main/src/loan/components/DetailInfoHealth.tsx b/apps/main/src/loan/components/DetailInfoHealth.tsx index dcb5bab07..ea79e206a 100644 --- a/apps/main/src/loan/components/DetailInfoHealth.tsx +++ b/apps/main/src/loan/components/DetailInfoHealth.tsx @@ -2,9 +2,9 @@ import { t } from '@lingui/macro' import React, { useEffect, useMemo, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_HEALTH_MODE } from '@loan/components/PageLoanManage/utils' -import { getIsUserCloseToLiquidation } from '@loan/utils/utilsCurvejs' -import { parseHealthPercent } from '@loan/utils/utilsLoan' +import { DEFAULT_HEALTH_MODE } from '@/loan/components/PageLoanManage/utils' +import { getIsUserCloseToLiquidation } from '@/loan/utils/utilsCurvejs' +import { parseHealthPercent } from '@/loan/utils/utilsLoan' import { formatNumber } from '@ui/utils' import Box from '@ui/Box' @@ -12,7 +12,7 @@ import DetailInfo from '@ui/DetailInfo' import ExternalLink from '@ui/Link/ExternalLink' import Icon from '@ui/Icon' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import { HealthMode, HeathColorKey, LoanDetails, UserLoanDetails } from '@loan/types/loan.types' +import { HealthMode, HeathColorKey, LoanDetails, UserLoanDetails } from '@/loan/types/loan.types' type FormType = 'create-loan' | 'collateral-decrease' | '' diff --git a/apps/main/src/loan/components/DetailInfoLiqRange.tsx b/apps/main/src/loan/components/DetailInfoLiqRange.tsx index b76ef2363..cf3f7eebb 100644 --- a/apps/main/src/loan/components/DetailInfoLiqRange.tsx +++ b/apps/main/src/loan/components/DetailInfoLiqRange.tsx @@ -1,4 +1,4 @@ -import type { LiqRangeSliderIdx } from '@loan/store/types' +import type { LiqRangeSliderIdx } from '@/loan/store/types' import { t } from '@lingui/macro' import React, { useMemo } from 'react' @@ -9,10 +9,10 @@ import { formatNumber } from '@ui/utils' import { Chip } from '@ui/Typography' import Button from '@ui/Button' import DetailInfo from '@ui/DetailInfo' -import ChartLiquidationRange from '@loan/components/ChartLiquidationRange' +import ChartLiquidationRange from '@/loan/components/ChartLiquidationRange' import Icon from '@ui/Icon' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { HealthMode, LoanDetails, UserLoanDetails } from '@loan/types/loan.types' +import { HealthMode, LoanDetails, UserLoanDetails } from '@/loan/types/loan.types' const DetailInfoLiqRange = ({ bands: newBands, diff --git a/apps/main/src/loan/components/DetailInfoLiqRangeEdit.tsx b/apps/main/src/loan/components/DetailInfoLiqRangeEdit.tsx index 35e63be17..26664f488 100644 --- a/apps/main/src/loan/components/DetailInfoLiqRangeEdit.tsx +++ b/apps/main/src/loan/components/DetailInfoLiqRangeEdit.tsx @@ -1,5 +1,5 @@ -import type { LiqRange, LiqRangeSliderIdx } from '@loan/store/types' -import type { FormDetailInfoSharedProps } from '@loan/components/PageLoanCreate/types' +import type { LiqRange, LiqRangeSliderIdx } from '@/loan/store/types' +import type { FormDetailInfoSharedProps } from '@/loan/components/PageLoanCreate/types' import { t } from '@lingui/macro' import React, { useEffect, useState } from 'react' diff --git a/apps/main/src/loan/components/DetailInfoSlippageTolerance.tsx b/apps/main/src/loan/components/DetailInfoSlippageTolerance.tsx index 269f8f84d..b61f266b9 100644 --- a/apps/main/src/loan/components/DetailInfoSlippageTolerance.tsx +++ b/apps/main/src/loan/components/DetailInfoSlippageTolerance.tsx @@ -3,7 +3,7 @@ import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import AdvancedSettings from '@loan/components/AdvancedSettings' +import AdvancedSettings from '@/loan/components/AdvancedSettings' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' diff --git a/apps/main/src/loan/components/DialogHealthWarning.tsx b/apps/main/src/loan/components/DialogHealthWarning.tsx index 836560121..12703a9d5 100644 --- a/apps/main/src/loan/components/DialogHealthWarning.tsx +++ b/apps/main/src/loan/components/DialogHealthWarning.tsx @@ -4,7 +4,7 @@ import styled from 'styled-components' import AlertBox from '@ui/AlertBox' import Checkbox from '@ui/Checkbox' -import { HealthMode } from '@loan/types/loan.types' +import { HealthMode } from '@/loan/types/loan.types' interface Props extends HealthMode { confirmed: boolean diff --git a/apps/main/src/loan/components/InpChipUsdRate.tsx b/apps/main/src/loan/components/InpChipUsdRate.tsx index 8f3180d76..7b7dc6868 100644 --- a/apps/main/src/loan/components/InpChipUsdRate.tsx +++ b/apps/main/src/loan/components/InpChipUsdRate.tsx @@ -1,6 +1,6 @@ import type { InpChipUsdRateProps } from '@ui/InpChipUsdRate/InpChipUsdRate' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import InpChipUsdRateComp from '@ui/InpChipUsdRate' diff --git a/apps/main/src/loan/components/LoanFormAlertWarning.tsx b/apps/main/src/loan/components/LoanFormAlertWarning.tsx index c6911cb5e..b52bcba68 100644 --- a/apps/main/src/loan/components/LoanFormAlertWarning.tsx +++ b/apps/main/src/loan/components/LoanFormAlertWarning.tsx @@ -4,7 +4,7 @@ import { t } from '@lingui/macro' import React, { useMemo } from 'react' import AlertBox from '@ui/AlertBox' -import { AlertType } from '@loan/types/loan.types' +import { AlertType } from '@/loan/types/loan.types' const ALERT_FORM_WARNING_KEYS = { 'warning-exchange-rate-low': 'warning-exchange-rate-low', diff --git a/apps/main/src/loan/components/LoanFormConnect.tsx b/apps/main/src/loan/components/LoanFormConnect.tsx index 8cfe5c09d..24a5ffe2c 100644 --- a/apps/main/src/loan/components/LoanFormConnect.tsx +++ b/apps/main/src/loan/components/LoanFormConnect.tsx @@ -1,9 +1,9 @@ import { t } from '@lingui/macro' import React from 'react' -import { CONNECT_STAGE } from '@loan/constants' +import { CONNECT_STAGE } from '@/loan/constants' import { isLoading } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import Button from '@ui/Button' import Spinner from '@ui/Spinner' diff --git a/apps/main/src/loan/components/LoanInfoLlamma/LoanInfoParameters.tsx b/apps/main/src/loan/components/LoanInfoLlamma/LoanInfoParameters.tsx index cd600c355..69c342c80 100644 --- a/apps/main/src/loan/components/LoanInfoLlamma/LoanInfoParameters.tsx +++ b/apps/main/src/loan/components/LoanInfoLlamma/LoanInfoParameters.tsx @@ -1,9 +1,9 @@ -import type { PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import { t } from '@lingui/macro' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import { Chip } from '@ui/Typography' import Box from '@ui/Box' diff --git a/apps/main/src/loan/components/LoanInfoLlamma/components/DetailInfoAddressLookup.tsx b/apps/main/src/loan/components/LoanInfoLlamma/components/DetailInfoAddressLookup.tsx index ee0587dd9..39d4fb4c9 100644 --- a/apps/main/src/loan/components/LoanInfoLlamma/components/DetailInfoAddressLookup.tsx +++ b/apps/main/src/loan/components/LoanInfoLlamma/components/DetailInfoAddressLookup.tsx @@ -1,16 +1,16 @@ -import type { StatsProps } from '@loan/components/LoanInfoLlamma/styles' +import type { StatsProps } from '@/loan/components/LoanInfoLlamma/styles' import React from 'react' import styled from 'styled-components' -import { copyToClipboard, shortenTokenAddress } from '@loan/utils/helpers' -import networks from '@loan/networks' +import { copyToClipboard, shortenTokenAddress } from '@/loan/utils/helpers' +import networks from '@/loan/networks' -import { StyledStats } from '@loan/components/LoanInfoLlamma/styles' +import { StyledStats } from '@/loan/components/LoanInfoLlamma/styles' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' import ExternalLink from '@ui/Link/ExternalLink' -import { ChainId } from '@loan/types/loan.types' +import { ChainId } from '@/loan/types/loan.types' interface Props extends StatsProps { chainId: ChainId diff --git a/apps/main/src/loan/components/LoanInfoLlamma/components/DetailsBandsChart.tsx b/apps/main/src/loan/components/LoanInfoLlamma/components/DetailsBandsChart.tsx index 09d3ba1c3..1c04bc84e 100644 --- a/apps/main/src/loan/components/LoanInfoLlamma/components/DetailsBandsChart.tsx +++ b/apps/main/src/loan/components/LoanInfoLlamma/components/DetailsBandsChart.tsx @@ -1,12 +1,12 @@ -import type { BrushStartEndIndex } from '@loan/components/ChartBandBalances/types' +import type { BrushStartEndIndex } from '@/loan/components/ChartBandBalances/types' import React, { useMemo, useState } from 'react' import { t } from '@lingui/macro' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import ChartBandBalances from '@loan/components/ChartBandBalances' -import { Llamma, BandsBalancesData } from '@loan/types/loan.types' +import ChartBandBalances from '@/loan/components/ChartBandBalances' +import { Llamma, BandsBalancesData } from '@/loan/types/loan.types' const DEFAULT_BAND_CHART_DATA = { collateral: '0', diff --git a/apps/main/src/loan/components/LoanInfoLlamma/components/DetailsInfo.tsx b/apps/main/src/loan/components/LoanInfoLlamma/components/DetailsInfo.tsx index ce4b9dc1e..956c7870e 100644 --- a/apps/main/src/loan/components/LoanInfoLlamma/components/DetailsInfo.tsx +++ b/apps/main/src/loan/components/LoanInfoLlamma/components/DetailsInfo.tsx @@ -1,12 +1,12 @@ -import { TITLE } from '@loan/constants' -import useStore from '@loan/store/useStore' +import { TITLE } from '@/loan/constants' +import useStore from '@/loan/store/useStore' import ListInfoItem, { ListInfoItems, ListInfoItemsWrapper } from '@ui/ListInfo' -import TokenLabel from '@loan/components/TokenLabel' -import TableCellRate from '@loan/components/SharedCells/TableCellRate' -import TableCellTotalCollateral from '@loan/components/SharedCells/TableCellTotalCollateral' -import TableCellUtilization from '@loan/components/SharedCells/TableCellUtilization' -import { ChainId, TitleKey, TitleMapper } from '@loan/types/loan.types' +import TokenLabel from '@/loan/components/TokenLabel' +import TableCellRate from '@/loan/components/SharedCells/TableCellRate' +import TableCellTotalCollateral from '@/loan/components/SharedCells/TableCellTotalCollateral' +import TableCellUtilization from '@/loan/components/SharedCells/TableCellUtilization' +import { ChainId, TitleKey, TitleMapper } from '@/loan/types/loan.types' const DetailsInfo = ({ rChainId, diff --git a/apps/main/src/loan/components/LoanInfoLlamma/index.tsx b/apps/main/src/loan/components/LoanInfoLlamma/index.tsx index 3651c29e6..e6fc30f8f 100644 --- a/apps/main/src/loan/components/LoanInfoLlamma/index.tsx +++ b/apps/main/src/loan/components/LoanInfoLlamma/index.tsx @@ -1,18 +1,18 @@ -import type { PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import { t } from '@lingui/macro' import React from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import useStore from '@loan/store/useStore' - -import { SubTitle } from '@loan/components/LoanInfoLlamma/styles' -import DetailsBandsChart from '@loan/components/LoanInfoLlamma/components/DetailsBandsChart' -import DetailsInfo from '@loan/components/LoanInfoLlamma/components/DetailsInfo' -import DetailInfoAddressLookup from '@loan/components/LoanInfoLlamma/components/DetailInfoAddressLookup' -import LoanInfoParameters from '@loan/components/LoanInfoLlamma/LoanInfoParameters' -import PoolInfoData from '@loan/components/ChartOhlcWrapper' +import useStore from '@/loan/store/useStore' + +import { SubTitle } from '@/loan/components/LoanInfoLlamma/styles' +import DetailsBandsChart from '@/loan/components/LoanInfoLlamma/components/DetailsBandsChart' +import DetailsInfo from '@/loan/components/LoanInfoLlamma/components/DetailsInfo' +import DetailInfoAddressLookup from '@/loan/components/LoanInfoLlamma/components/DetailInfoAddressLookup' +import LoanInfoParameters from '@/loan/components/LoanInfoLlamma/LoanInfoParameters' +import PoolInfoData from '@/loan/components/ChartOhlcWrapper' import { useUserProfileStore } from '@ui-kit/features/user-profile' interface Props extends Pick { diff --git a/apps/main/src/loan/components/LoanInfoUser/components/AlertSoftLiquidation.tsx b/apps/main/src/loan/components/LoanInfoUser/components/AlertSoftLiquidation.tsx index 5be97c958..c584de415 100644 --- a/apps/main/src/loan/components/LoanInfoUser/components/AlertSoftLiquidation.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/components/AlertSoftLiquidation.tsx @@ -2,13 +2,13 @@ import React, { useMemo } from 'react' import { t } from '@lingui/macro' import { formatNumber } from '@ui/utils' -import { getTokenName } from '@loan/utils/utilsLoan' -import useStore from '@loan/store/useStore' +import { getTokenName } from '@/loan/utils/utilsLoan' +import useStore from '@/loan/store/useStore' import AlertBox from '@ui/AlertBox' import Box from '@ui/Box' import ExternalLink from '@ui/Link/ExternalLink' -import { Llamma } from '@loan/types/loan.types' +import { Llamma } from '@/loan/types/loan.types' const AlertSoftLiquidation = ({ llammaId, llamma }: { llammaId: string; llamma: Llamma | null }) => { const userLoanDetails = useStore((state) => state.loans.userDetailsMapper[llammaId]) diff --git a/apps/main/src/loan/components/LoanInfoUser/components/ChartUserBands.tsx b/apps/main/src/loan/components/LoanInfoUser/components/ChartUserBands.tsx index 35717cc28..8a442cccf 100644 --- a/apps/main/src/loan/components/LoanInfoUser/components/ChartUserBands.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/components/ChartUserBands.tsx @@ -1,12 +1,12 @@ -import type { BrushStartEndIndex } from '@loan/components/ChartBandBalances/types' +import type { BrushStartEndIndex } from '@/loan/components/ChartBandBalances/types' import React, { useEffect, useMemo, useState } from 'react' import { t } from '@lingui/macro' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import ChartBandBalances from '@loan/components/ChartBandBalances' -import { Llamma } from '@loan/types/loan.types' +import ChartBandBalances from '@/loan/components/ChartBandBalances' +import { Llamma } from '@/loan/types/loan.types' const DEFAULT_BAND_CHART_DATA = { collateral: '0', diff --git a/apps/main/src/loan/components/LoanInfoUser/components/ChartUserLiquidationRange.tsx b/apps/main/src/loan/components/LoanInfoUser/components/ChartUserLiquidationRange.tsx index fbe75cfd3..52d07cc57 100644 --- a/apps/main/src/loan/components/LoanInfoUser/components/ChartUserLiquidationRange.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/components/ChartUserLiquidationRange.tsx @@ -1,10 +1,10 @@ import React, { useMemo } from 'react' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import ChartLiquidationRange from '@loan/components/ChartLiquidationRange' +import ChartLiquidationRange from '@/loan/components/ChartLiquidationRange' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { HealthMode } from '@loan/types/loan.types' +import { HealthMode } from '@/loan/types/loan.types' const ChartUserLiquidationRange = ({ healthMode, llammaId }: { healthMode: HealthMode; llammaId: string }) => { const loanDetails = useStore((state) => state.loans.detailsMapper[llammaId]) diff --git a/apps/main/src/loan/components/LoanInfoUser/components/UserInfoDebt.tsx b/apps/main/src/loan/components/LoanInfoUser/components/UserInfoDebt.tsx index 3ccb03ba1..aee4b9c26 100644 --- a/apps/main/src/loan/components/LoanInfoUser/components/UserInfoDebt.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/components/UserInfoDebt.tsx @@ -3,9 +3,9 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import InpChipUsdRate from '@loan/components/InpChipUsdRate' +import InpChipUsdRate from '@/loan/components/InpChipUsdRate' import ListInfoItem from '@ui/ListInfo' const UserInfoDebt = ({ diff --git a/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLiquidationRange.tsx b/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLiquidationRange.tsx index 55a3920c9..50a787b54 100644 --- a/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLiquidationRange.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLiquidationRange.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from 'react' import isUndefined from 'lodash/isUndefined' import { formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' const UserInfoLiquidationRange = ({ llammaId, diff --git a/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLlammaBalances.tsx b/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLlammaBalances.tsx index 44fe6e346..b907f45d2 100644 --- a/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLlammaBalances.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLlammaBalances.tsx @@ -1,12 +1,12 @@ import React from 'react' import { formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import Box from '@ui/Box' -import InpChipUsdRate from '@loan/components/InpChipUsdRate' +import InpChipUsdRate from '@/loan/components/InpChipUsdRate' import ListInfoItem from '@ui/ListInfo' -import { Llamma } from '@loan/types/loan.types' +import { Llamma } from '@/loan/types/loan.types' const UserInfoLlammaBalances = ({ llammaId, llamma }: { llammaId: string; llamma: Llamma | null }) => { const userState = useStore((state) => state.loans.userDetailsMapper[llammaId]?.userState) diff --git a/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLoss.tsx b/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLoss.tsx index cf5eef52c..ba7c05ef2 100644 --- a/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLoss.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/components/UserInfoLoss.tsx @@ -3,13 +3,13 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import Box from '@ui/Box' import Chip from '@ui/Typography/Chip' -import InpChipUsdRate from '@loan/components/InpChipUsdRate' +import InpChipUsdRate from '@/loan/components/InpChipUsdRate' import TextCaption from '@ui/TextCaption' -import { Llamma } from '@loan/types/loan.types' +import { Llamma } from '@/loan/types/loan.types' const SMALL_AMOUNT = 0.0001 diff --git a/apps/main/src/loan/components/LoanInfoUser/components/UserInfos.tsx b/apps/main/src/loan/components/LoanInfoUser/components/UserInfos.tsx index 21298bc33..6d7204dc7 100644 --- a/apps/main/src/loan/components/LoanInfoUser/components/UserInfos.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/components/UserInfos.tsx @@ -2,19 +2,19 @@ import React from 'react' import styled from 'styled-components' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { TITLE } from '@loan/constants' +import { TITLE } from '@/loan/constants' import { breakpoints } from '@ui/utils/responsive' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import { HealthColorText } from '@loan/components/LoanInfoUser/styles' -import AlertSoftLiquidation from '@loan/components/LoanInfoUser/components/AlertSoftLiquidation' -import UserInfoDebt from '@loan/components/LoanInfoUser/components/UserInfoDebt' +import { HealthColorText } from '@/loan/components/LoanInfoUser/styles' +import AlertSoftLiquidation from '@/loan/components/LoanInfoUser/components/AlertSoftLiquidation' +import UserInfoDebt from '@/loan/components/LoanInfoUser/components/UserInfoDebt' import ListInfoItem, { ListInfoItems, ListInfoItemsWrapper } from '@ui/ListInfo' -import UserInfoLiquidationRange from '@loan/components/LoanInfoUser/components/UserInfoLiquidationRange' -import UserInfoLoss from '@loan/components/LoanInfoUser/components/UserInfoLoss' -import UserInfoLlammaBalances from '@loan/components/LoanInfoUser/components/UserInfoLlammaBalances' +import UserInfoLiquidationRange from '@/loan/components/LoanInfoUser/components/UserInfoLiquidationRange' +import UserInfoLoss from '@/loan/components/LoanInfoUser/components/UserInfoLoss' +import UserInfoLlammaBalances from '@/loan/components/LoanInfoUser/components/UserInfoLlammaBalances' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Llamma, HealthMode, TitleKey, TitleMapper } from '@loan/types/loan.types' +import { Llamma, HealthMode, TitleKey, TitleMapper } from '@/loan/types/loan.types' const UserInfos = ({ llammaId, diff --git a/apps/main/src/loan/components/LoanInfoUser/index.tsx b/apps/main/src/loan/components/LoanInfoUser/index.tsx index 98cdd9ee5..b5dfbebdf 100644 --- a/apps/main/src/loan/components/LoanInfoUser/index.tsx +++ b/apps/main/src/loan/components/LoanInfoUser/index.tsx @@ -1,23 +1,23 @@ -import type { PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import React, { useEffect, useState } from 'react' import { t } from '@lingui/macro' import isUndefined from 'lodash/isUndefined' import styled from 'styled-components' -import { DEFAULT_HEALTH_MODE } from '@loan/components/PageLoanManage/utils' +import { DEFAULT_HEALTH_MODE } from '@/loan/components/PageLoanManage/utils' import { breakpoints } from '@ui/utils/responsive' -import { getHealthMode } from '@loan/components/DetailInfoHealth' -import useStore from '@loan/store/useStore' +import { getHealthMode } from '@/loan/components/DetailInfoHealth' +import useStore from '@/loan/store/useStore' -import { SubTitle } from '@loan/components/LoanInfoLlamma/styles' +import { SubTitle } from '@/loan/components/LoanInfoLlamma/styles' import Box from '@ui/Box' -import PoolInfoData from '@loan/components/ChartOhlcWrapper' -import ChartUserBands from '@loan/components/LoanInfoUser/components/ChartUserBands' -import ChartUserLiquidationRange from '@loan/components/LoanInfoUser/components/ChartUserLiquidationRange' -import UserInfos from '@loan/components/LoanInfoUser/components/UserInfos' +import PoolInfoData from '@/loan/components/ChartOhlcWrapper' +import ChartUserBands from '@/loan/components/LoanInfoUser/components/ChartUserBands' +import ChartUserLiquidationRange from '@/loan/components/LoanInfoUser/components/ChartUserLiquidationRange' +import UserInfos from '@/loan/components/LoanInfoUser/components/UserInfos' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId } from '@loan/types/loan.types' +import { ChainId } from '@/loan/types/loan.types' interface Props extends Pick { rChainId: ChainId diff --git a/apps/main/src/loan/components/LoanInfoUser/styles.ts b/apps/main/src/loan/components/LoanInfoUser/styles.ts index b072d9179..51ae5e2e9 100644 --- a/apps/main/src/loan/components/LoanInfoUser/styles.ts +++ b/apps/main/src/loan/components/LoanInfoUser/styles.ts @@ -1,5 +1,5 @@ import styled from 'styled-components' -import { HeathColorKey } from '@loan/types/loan.types' +import { HeathColorKey } from '@/loan/types/loan.types' export const HealthColorText = styled.span<{ colorKey?: HeathColorKey }>` color: ${({ colorKey }) => `var(--health_mode_${colorKey}--color)`}; diff --git a/apps/main/src/loan/components/LoanInfoUser/utils.ts b/apps/main/src/loan/components/LoanInfoUser/utils.ts index f5c68a79d..afb8196c7 100644 --- a/apps/main/src/loan/components/LoanInfoUser/utils.ts +++ b/apps/main/src/loan/components/LoanInfoUser/utils.ts @@ -1,4 +1,4 @@ -import { UserWalletBalances } from '@loan/types/loan.types' +import { UserWalletBalances } from '@/loan/types/loan.types' export const DEFAULT_WALLET_BALANCES: UserWalletBalances = { stablecoin: '0', diff --git a/apps/main/src/loan/components/Page404/Page.tsx b/apps/main/src/loan/components/Page404/Page.tsx index c99f6ab72..b0e90a0c8 100644 --- a/apps/main/src/loan/components/Page404/Page.tsx +++ b/apps/main/src/loan/components/Page404/Page.tsx @@ -1,6 +1,6 @@ import type { NextPage } from 'next' -import DocumentHead from '@loan/layout/DocumentHead' +import DocumentHead from '@/loan/layout/DocumentHead' import Error404 from '@ui/Error404' const Page: NextPage = () => ( diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/DeployButton.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/DeployButton.tsx index 872ed5635..b246ea454 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/DeployButton.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/DeployButton.tsx @@ -3,7 +3,7 @@ import { useCallback, useMemo } from 'react' import BigNumber from 'bignumber.js' import styled from 'styled-components' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import Button from '@ui/Button' import React from 'react' diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/DepositModule.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/DepositModule.tsx index 0f6f05405..3d6513652 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/DepositModule.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/DepositModule.tsx @@ -2,8 +2,8 @@ import { t } from '@lingui/macro' import Image from 'next/image' import BigNumber from 'bignumber.js' -import useStore from '@loan/store/useStore' -import { isLoading } from '@loan/components/PageCrvUsdStaking/utils' +import useStore from '@/loan/store/useStore' +import { isLoading } from '@/loan/components/PageCrvUsdStaking/utils' import { RCCrvUSDLogoXS, RCScrvUSDLogoXS } from 'ui/src/images' diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/WithdrawModule.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/WithdrawModule.tsx index e36fa9877..7cac751ee 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/WithdrawModule.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/WithdrawModule.tsx @@ -2,8 +2,8 @@ import { t } from '@lingui/macro' import Image from 'next/image' import BigNumber from 'bignumber.js' -import useStore from '@loan/store/useStore' -import { isLoading } from '@loan/components/PageCrvUsdStaking/utils' +import useStore from '@/loan/store/useStore' +import { isLoading } from '@/loan/components/PageCrvUsdStaking/utils' import { RCCrvUSDLogoXS, RCScrvUSDLogoXS } from 'ui/src/images' diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/constants.ts b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/constants.ts index ed6a367be..7d67b771f 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/constants.ts +++ b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/constants.ts @@ -1,4 +1,4 @@ -import { SubNavItem } from '@loan/components/PageCrvUsdStaking/components/SubNav/types' +import { SubNavItem } from '@/loan/components/PageCrvUsdStaking/components/SubNav/types' export const SUB_NAV_ITEMS: SubNavItem[] = [ { key: 'deposit', label: 'Deposit' }, diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/index.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/index.tsx index ceb4d4c13..e24e77514 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/index.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/index.tsx @@ -1,17 +1,17 @@ -import { SubNavItem } from '@loan/components/PageCrvUsdStaking/components/SubNav/types' -import { DepositWithdrawModule } from '@loan/components/PageCrvUsdStaking/types' +import { SubNavItem } from '@/loan/components/PageCrvUsdStaking/components/SubNav/types' +import { DepositWithdrawModule } from '@/loan/components/PageCrvUsdStaking/types' import { useEffect } from 'react' import styled from 'styled-components' -import useStore from '@loan/store/useStore' -import { SUB_NAV_ITEMS } from '@loan/components/PageCrvUsdStaking/DepositWithdraw/constants' +import useStore from '@/loan/store/useStore' +import { SUB_NAV_ITEMS } from '@/loan/components/PageCrvUsdStaking/DepositWithdraw/constants' -import SubNav from '@loan/components/PageCrvUsdStaking/components/SubNav' -import TransactionDetails from '@loan/components/PageCrvUsdStaking/TransactionDetails' -import DepositModule from '@loan/components/PageCrvUsdStaking/DepositWithdraw/DepositModule' -import WithdrawModule from '@loan/components/PageCrvUsdStaking/DepositWithdraw/WithdrawModule' -import DeployButton from '@loan/components/PageCrvUsdStaking/DepositWithdraw/DeployButton' -import TransactionTracking from '@loan/components/PageCrvUsdStaking/TransactionTracking' +import SubNav from '@/loan/components/PageCrvUsdStaking/components/SubNav' +import TransactionDetails from '@/loan/components/PageCrvUsdStaking/TransactionDetails' +import DepositModule from '@/loan/components/PageCrvUsdStaking/DepositWithdraw/DepositModule' +import WithdrawModule from '@/loan/components/PageCrvUsdStaking/DepositWithdraw/WithdrawModule' +import DeployButton from '@/loan/components/PageCrvUsdStaking/DepositWithdraw/DeployButton' +import TransactionTracking from '@/loan/components/PageCrvUsdStaking/TransactionTracking' type DepositWithdrawProps = { className?: string diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/styles.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/styles.tsx index 012aa6d22..991b0b9f9 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/styles.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/DepositWithdraw/styles.tsx @@ -2,7 +2,7 @@ import styled from 'styled-components' import Icon from '@ui/Icon' -import InputComp from '@loan/components/PageCrvUsdStaking/components/InputComp' +import InputComp from '@/loan/components/PageCrvUsdStaking/components/InputComp' export const SelectorBox = styled.div` padding: var(--spacing-2); diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/Page.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/Page.tsx index a472d9502..3d3222e50 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/Page.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/Page.tsx @@ -6,16 +6,16 @@ import Image from 'next/image' import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' -import { scrollToTop } from '@loan/utils/helpers' -import usePageOnMount from '@loan/hooks/usePageOnMount' +import { scrollToTop } from '@/loan/utils/helpers' +import usePageOnMount from '@/loan/hooks/usePageOnMount' import { RCScrvUSDLogoSM } from 'ui/src/images' -import DocumentHead from '@loan/layout/DocumentHead' +import DocumentHead from '@/loan/layout/DocumentHead' import Box from '@ui/Box' -import Settings from '@loan/layout/Settings' +import Settings from '@/loan/layout/Settings' -import CrvUsdStaking from '@loan/components/PageCrvUsdStaking' +import CrvUsdStaking from '@/loan/components/PageCrvUsdStaking' const mobileBreakpoint = '47.5rem' diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/StatsBanner/index.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/StatsBanner/index.tsx index cc8e05f6e..f347b4c64 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/StatsBanner/index.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/StatsBanner/index.tsx @@ -1,8 +1,8 @@ import styled from 'styled-components' import { t } from '@lingui/macro' -import useStore from '@loan/store/useStore' -import { isReady } from '@loan/components/PageCrvUsdStaking/utils' +import useStore from '@/loan/store/useStore' +import { isReady } from '@/loan/components/PageCrvUsdStaking/utils' import { formatNumber } from '@ui/utils' import Box from '@ui/Box' diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionDetails/FieldValue.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionDetails/FieldValue.tsx index f064e6f93..143b49c56 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionDetails/FieldValue.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionDetails/FieldValue.tsx @@ -1,12 +1,12 @@ import styled from 'styled-components' import { formatNumber, FORMAT_OPTIONS } from '@ui/utils' -import { isReady, isLoading, isIdle } from '@loan/components/PageCrvUsdStaking/utils' +import { isReady, isLoading, isIdle } from '@/loan/components/PageCrvUsdStaking/utils' import Loader from '@ui/Loader' import Tooltip from '@ui/Tooltip' import Icon from '@ui/Icon' -import { FetchStatus } from '@loan/types/loan.types' +import { FetchStatus } from '@/loan/types/loan.types' type FieldValueProps = { value: string | number diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionDetails/index.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionDetails/index.tsx index bc557d6b7..00603ec57 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionDetails/index.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionDetails/index.tsx @@ -2,18 +2,18 @@ import styled from 'styled-components' import { useState } from 'react' import { t } from '@lingui/macro' -import useStore from '@loan/store/useStore' -import useEstimateGasConversion from '@loan/hooks/useEstimateGasConversion' +import useStore from '@/loan/store/useStore' +import useEstimateGasConversion from '@/loan/hooks/useEstimateGasConversion' import { formatNumber } from '@ui/utils' -import { isLoading, isReady } from '@loan/components/PageCrvUsdStaking/utils' +import { isLoading, isReady } from '@/loan/components/PageCrvUsdStaking/utils' import Icon from '@ui/Icon' import Box from '@ui/Box' import Loader from '@ui/Loader' -import Switch from '@loan/components/PageCrvUsdStaking/components/Switch' -import DetailInfoSlippageTolerance from '@loan/components/DetailInfoSlippageTolerance' -import FieldValue from '@loan/components/PageCrvUsdStaking/TransactionDetails/FieldValue' +import Switch from '@/loan/components/PageCrvUsdStaking/components/Switch' +import DetailInfoSlippageTolerance from '@/loan/components/DetailInfoSlippageTolerance' +import FieldValue from '@/loan/components/PageCrvUsdStaking/TransactionDetails/FieldValue' type TransactionDetailsProps = { className?: string diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/DepositTracking.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/DepositTracking.tsx index d49d14f64..2dddcb222 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/DepositTracking.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/DepositTracking.tsx @@ -1,9 +1,9 @@ import Image from 'next/image' import { t } from '@lingui/macro' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import { RCCrvUSDLogoXS, RCScrvUSDLogoXS } from 'ui/src/images' -import { txIsConfirming, txIsSuccess, txIsLoading } from '@loan/components/PageCrvUsdStaking/utils' +import { txIsConfirming, txIsSuccess, txIsLoading } from '@/loan/components/PageCrvUsdStaking/utils' import { Wrapper, diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/WithdrawTracking.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/WithdrawTracking.tsx index 7fbb4bc4f..1eac00aa5 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/WithdrawTracking.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/WithdrawTracking.tsx @@ -1,7 +1,7 @@ import { t } from '@lingui/macro' -import useStore from '@loan/store/useStore' -import { txIsConfirming, txIsSuccess, txIsLoading } from '@loan/components/PageCrvUsdStaking/utils' +import useStore from '@/loan/store/useStore' +import { txIsConfirming, txIsSuccess, txIsLoading } from '@/loan/components/PageCrvUsdStaking/utils' import { Wrapper, diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/index.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/index.tsx index 30f700c5b..0f4573ffe 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/index.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/TransactionTracking/index.tsx @@ -1,4 +1,4 @@ -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import DepositTracking from './DepositTracking' import WithdrawTracking from './WithdrawTracking' diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/UserPositionBanner/index.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/UserPositionBanner/index.tsx index 9a23e3ec0..8a554fc0f 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/UserPositionBanner/index.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/UserPositionBanner/index.tsx @@ -3,11 +3,11 @@ import { t } from '@lingui/macro' import BigNumber from 'bignumber.js' import Image from 'next/image' -import useStore from '@loan/store/useStore' -import { isReady } from '@loan/components/PageCrvUsdStaking/utils' +import useStore from '@/loan/store/useStore' +import { isReady } from '@/loan/components/PageCrvUsdStaking/utils' import { formatNumber } from '@ui/utils' import { RCScrvUSDLogoSM } from 'ui/src/images' -import { CRVUSD_ADDRESS } from '@loan/constants' +import { CRVUSD_ADDRESS } from '@/loan/constants' import Box from '@ui/Box' import Loader from '@ui/Loader' diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/components/InputComp/index.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/components/InputComp/index.tsx index 3c49ba65e..9abebc04c 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/components/InputComp/index.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/components/InputComp/index.tsx @@ -9,7 +9,7 @@ import Box from 'ui/src/Box' import Loader from '@ui/Loader' import Button from 'ui/src/Button' -import NumberField from '@loan/components/PageCrvUsdStaking/components/InputComp/NumberField' +import NumberField from '@/loan/components/PageCrvUsdStaking/components/InputComp/NumberField' type InputCompProps = { walletBalance: string diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/components/SubNav/index.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/components/SubNav/index.tsx index 3d04d7700..0aaa0f470 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/components/SubNav/index.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/components/SubNav/index.tsx @@ -1,4 +1,4 @@ -import { SubNavItem } from '@loan/components/PageCrvUsdStaking/components/SubNav/types' +import { SubNavItem } from '@/loan/components/PageCrvUsdStaking/components/SubNav/types' import styled from 'styled-components' diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/index.tsx b/apps/main/src/loan/components/PageCrvUsdStaking/index.tsx index bb6925ed8..a544cd594 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/index.tsx +++ b/apps/main/src/loan/components/PageCrvUsdStaking/index.tsx @@ -2,12 +2,12 @@ import styled from 'styled-components' import { useEffect } from 'react' import BigNumber from 'bignumber.js' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import StatsBanner from '@loan/components/PageCrvUsdStaking/StatsBanner' -import DepositWithdraw from '@loan/components/PageCrvUsdStaking/DepositWithdraw' -import UserInformation from '@loan/components/PageCrvUsdStaking/UserInformation' -import UserPositionBanner from '@loan/components/PageCrvUsdStaking/UserPositionBanner' +import StatsBanner from '@/loan/components/PageCrvUsdStaking/StatsBanner' +import DepositWithdraw from '@/loan/components/PageCrvUsdStaking/DepositWithdraw' +import UserInformation from '@/loan/components/PageCrvUsdStaking/UserInformation' +import UserPositionBanner from '@/loan/components/PageCrvUsdStaking/UserPositionBanner' const CrvUsdStaking = ({ mobileBreakpoint }: { mobileBreakpoint: string }) => { const { diff --git a/apps/main/src/loan/components/PageCrvUsdStaking/utils.ts b/apps/main/src/loan/components/PageCrvUsdStaking/utils.ts index 2a9e86ea7..195aa51b3 100644 --- a/apps/main/src/loan/components/PageCrvUsdStaking/utils.ts +++ b/apps/main/src/loan/components/PageCrvUsdStaking/utils.ts @@ -1,4 +1,4 @@ -import { FetchStatus, TransactionStatus } from '@loan/types/loan.types' +import { FetchStatus, TransactionStatus } from '@/loan/types/loan.types' export const isReady = (status: FetchStatus) => status === 'success' export const isLoading = (status: FetchStatus) => status === 'loading' diff --git a/apps/main/src/loan/components/PageDisclaimer/Page.tsx b/apps/main/src/loan/components/PageDisclaimer/Page.tsx index f2f771241..1f28bca73 100644 --- a/apps/main/src/loan/components/PageDisclaimer/Page.tsx +++ b/apps/main/src/loan/components/PageDisclaimer/Page.tsx @@ -4,8 +4,8 @@ import { t } from '@lingui/macro' import Stack from '@mui/material/Stack' -import DocumentHead from '@loan/layout/DocumentHead' -import { scrollToTop } from '@loan/utils/helpers' +import DocumentHead from '@/loan/layout/DocumentHead' +import { scrollToTop } from '@/loan/utils/helpers' import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' import { Disclaimer } from '@ui-kit/widgets/Disclaimer' diff --git a/apps/main/src/loan/components/PageIntegrations/Page.tsx b/apps/main/src/loan/components/PageIntegrations/Page.tsx index 9f76cf49e..43a7b5304 100644 --- a/apps/main/src/loan/components/PageIntegrations/Page.tsx +++ b/apps/main/src/loan/components/PageIntegrations/Page.tsx @@ -6,13 +6,13 @@ import { useLocation, useNavigate, useParams, useSearchParams } from 'react-rout import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { scrollToTop } from '@loan/utils/helpers' -import usePageOnMount from '@loan/hooks/usePageOnMount' -import useStore from '@loan/store/useStore' +import { scrollToTop } from '@/loan/utils/helpers' +import usePageOnMount from '@/loan/hooks/usePageOnMount' +import useStore from '@/loan/store/useStore' import { ExternalLink } from '@ui/Link' -import DocumentHead from '@loan/layout/DocumentHead' -import IntegrationsComp from '@loan/components/PageIntegrations/index' +import DocumentHead from '@/loan/layout/DocumentHead' +import IntegrationsComp from '@/loan/components/PageIntegrations/index' import Spinner, { SpinnerWrapper } from '@ui/Spinner' const Page: NextPage = () => { diff --git a/apps/main/src/loan/components/PageIntegrations/index.tsx b/apps/main/src/loan/components/PageIntegrations/index.tsx index 5268d2944..6885ba7d0 100644 --- a/apps/main/src/loan/components/PageIntegrations/index.tsx +++ b/apps/main/src/loan/components/PageIntegrations/index.tsx @@ -1,4 +1,4 @@ -import type { FilterKey, FormValues } from '@loan/components/PageIntegrations/types' +import type { FilterKey, FormValues } from '@/loan/components/PageIntegrations/types' import type { IntegrationsTags } from '@ui/Integration/types' import type { NavigateFunction, Params } from 'react-router' @@ -7,19 +7,19 @@ import React, { useCallback, useEffect, useMemo } from 'react' import Image from 'next/image' import styled from 'styled-components' -import { ROUTE } from '@loan/constants' +import { ROUTE } from '@/loan/constants' import { breakpoints } from '@ui/utils' -import { getPath } from '@loan/utils/utilsRouter' +import { getPath } from '@/loan/utils/utilsRouter' import { useFocusRing } from '@react-aria/focus' -import networks, { networksIdMapper } from '@loan/networks' -import useStore from '@loan/store/useStore' +import networks, { networksIdMapper } from '@/loan/networks' +import useStore from '@/loan/store/useStore' import Box from '@ui/Box' import IntegrationAppComp from '@ui/Integration/IntegrationApp' import SearchInput from '@ui/SearchInput' import TableButtonFilters from '@ui/TableButtonFilters' import TableButtonFiltersMobile from '@ui/TableButtonFiltersMobile' -import { ChainId, NetworkEnum } from '@loan/types/loan.types' +import { ChainId, NetworkEnum } from '@/loan/types/loan.types' // Update integrations list repo: https://github.com/curvefi/curve-external-integrations const IntegrationsComp = ({ diff --git a/apps/main/src/loan/components/PageLlamaMarkets/LendingMarketsFilters.tsx b/apps/main/src/loan/components/PageLlamaMarkets/LendingMarketsFilters.tsx index 1cc10e9ac..c07504d75 100644 --- a/apps/main/src/loan/components/PageLlamaMarkets/LendingMarketsFilters.tsx +++ b/apps/main/src/loan/components/PageLlamaMarkets/LendingMarketsFilters.tsx @@ -1,15 +1,15 @@ import Grid from '@mui/material/Grid2' import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' import React, { useMemo } from 'react' -import { LendingVault } from '@loan/entities/vaults' +import { LendingVault } from '@/loan/entities/vaults' import { capitalize } from 'lodash' import { ChainIcon } from '@ui-kit/shared/icons/ChainIcon' import Typography from '@mui/material/Typography' import { t } from '@lingui/macro' -import { MultiSelectFilter } from '@loan/components/PageLlamaMarkets/filters/MultiSelectFilter' +import { MultiSelectFilter } from '@/loan/components/PageLlamaMarkets/filters/MultiSelectFilter' import { formatNumber, getImageBaseUrl } from '@ui/utils' import TokenIcon from '../TokenIcon' -import { MinimumSliderFilter } from '@loan/components/PageLlamaMarkets/filters/MinimumSliderFilter' +import { MinimumSliderFilter } from '@/loan/components/PageLlamaMarkets/filters/MinimumSliderFilter' const { Spacing } = SizesAndSpaces diff --git a/apps/main/src/loan/components/PageLlamaMarkets/LendingMarketsTable.tsx b/apps/main/src/loan/components/PageLlamaMarkets/LendingMarketsTable.tsx index 64ffcfbf5..eb9db76df 100644 --- a/apps/main/src/loan/components/PageLlamaMarkets/LendingMarketsTable.tsx +++ b/apps/main/src/loan/components/PageLlamaMarkets/LendingMarketsTable.tsx @@ -4,7 +4,7 @@ import { TableFilters, useColumnFilters } from '@ui-kit/shared/ui/TableFilters' import { t } from '@lingui/macro' import { CompactUsdCell, LineGraphCell, PoolTitleCell, UtilizationCell } from './cells' import { DataTable } from '@ui-kit/shared/ui/DataTable' -import { LendingVault } from '@loan/entities/vaults' +import { LendingVault } from '@/loan/entities/vaults' import { ColumnDef, createColumnHelper, @@ -13,7 +13,7 @@ import { getSortedRowModel, useReactTable, } from '@tanstack/react-table' -import { LendingMarketsFilters } from '@loan/components/PageLlamaMarkets/LendingMarketsFilters' +import { LendingMarketsFilters } from '@/loan/components/PageLlamaMarkets/LendingMarketsFilters' import { useSortFromQueryString } from '@ui-kit/hooks/useSortFromQueryString' import { DeepKeys } from '@tanstack/table-core/build/lib/utils' import { diff --git a/apps/main/src/loan/components/PageLlamaMarkets/Page.tsx b/apps/main/src/loan/components/PageLlamaMarkets/Page.tsx index 75139f23b..f31441e3e 100644 --- a/apps/main/src/loan/components/PageLlamaMarkets/Page.tsx +++ b/apps/main/src/loan/components/PageLlamaMarkets/Page.tsx @@ -1,15 +1,15 @@ import Box from '@mui/material/Box' import Skeleton from '@mui/material/Skeleton' -import { LendTableTitle } from '@loan/components/PageLlamaMarkets/LendTableTitle' -import { LendingMarketsTable } from '@loan/components/PageLlamaMarkets/LendingMarketsTable' -import { LendTableFooter } from '@loan/components/PageLlamaMarkets/LendTableFooter' -import { invalidateLendingVaults, useLendingVaults } from '@loan/entities/vaults' -import DocumentHead from '@loan/layout/DocumentHead' +import { LendTableTitle } from '@/loan/components/PageLlamaMarkets/LendTableTitle' +import { LendingMarketsTable } from '@/loan/components/PageLlamaMarkets/LendingMarketsTable' +import { LendTableFooter } from '@/loan/components/PageLlamaMarkets/LendTableFooter' +import { invalidateLendingVaults, useLendingVaults } from '@/loan/entities/vaults' +import DocumentHead from '@/loan/layout/DocumentHead' import { t } from '@lingui/macro' import React from 'react' import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' import { useHeaderHeight } from '@ui-kit/widgets/Header' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' const onReload = () => invalidateLendingVaults({}) diff --git a/apps/main/src/loan/components/PageLlamaMarkets/cells/CompactUsdCell.tsx b/apps/main/src/loan/components/PageLlamaMarkets/cells/CompactUsdCell.tsx index b277b84c1..76320e309 100644 --- a/apps/main/src/loan/components/PageLlamaMarkets/cells/CompactUsdCell.tsx +++ b/apps/main/src/loan/components/PageLlamaMarkets/cells/CompactUsdCell.tsx @@ -1,4 +1,4 @@ -import { LendingVault } from '@loan/entities/vaults' +import { LendingVault } from '@/loan/entities/vaults' import { formatNumber } from '@ui/utils' import { CellContext } from '@tanstack/react-table' diff --git a/apps/main/src/loan/components/PageLlamaMarkets/cells/LineGraphCell.tsx b/apps/main/src/loan/components/PageLlamaMarkets/cells/LineGraphCell.tsx index eff2d0a8d..9948f3e89 100644 --- a/apps/main/src/loan/components/PageLlamaMarkets/cells/LineGraphCell.tsx +++ b/apps/main/src/loan/components/PageLlamaMarkets/cells/LineGraphCell.tsx @@ -1,5 +1,5 @@ -import { LendingSnapshot, useLendingSnapshots } from '@loan/entities/lending' -import { LendingVault } from '@loan/entities/vaults' +import { LendingSnapshot, useLendingSnapshots } from '@/loan/entities/lending' +import { LendingVault } from '@/loan/entities/vaults' import { Line, LineChart, YAxis } from 'recharts' import { useTheme } from '@mui/material/styles' import { DesignSystem } from '@ui-kit/themes/design' diff --git a/apps/main/src/loan/components/PageLlamaMarkets/cells/PoolTitleCell/PoolTitleCell.tsx b/apps/main/src/loan/components/PageLlamaMarkets/cells/PoolTitleCell/PoolTitleCell.tsx index 4d88de809..9746ff7d3 100644 --- a/apps/main/src/loan/components/PageLlamaMarkets/cells/PoolTitleCell/PoolTitleCell.tsx +++ b/apps/main/src/loan/components/PageLlamaMarkets/cells/PoolTitleCell/PoolTitleCell.tsx @@ -1,12 +1,12 @@ -import { LendingVault } from '@loan/entities/vaults' +import { LendingVault } from '@/loan/entities/vaults' import Stack from '@mui/material/Stack' -import TokenIcons from '@loan/components/TokenIcons' +import TokenIcons from '@/loan/components/TokenIcons' import React, { useMemo } from 'react' import { CellContext } from '@tanstack/react-table' import { SizesAndSpaces } from '@ui-kit/themes/design/1_sizes_spaces' import Typography from '@mui/material/Typography' -import { PoolBadges } from '@loan/components/PageLlamaMarkets/cells/PoolTitleCell/PoolBadges' -import { PoolWarnings } from '@loan/components/PageLlamaMarkets/cells/PoolTitleCell/PoolWarnings' +import { PoolBadges } from '@/loan/components/PageLlamaMarkets/cells/PoolTitleCell/PoolBadges' +import { PoolWarnings } from '@/loan/components/PageLlamaMarkets/cells/PoolTitleCell/PoolWarnings' import { getImageBaseUrl } from '@ui/utils' import { cleanColumnId } from '@ui-kit/shared/ui/TableVisibilitySettingsPopover' diff --git a/apps/main/src/loan/components/PageLlamaMarkets/cells/UtilizationCell.tsx b/apps/main/src/loan/components/PageLlamaMarkets/cells/UtilizationCell.tsx index 9a18ba61a..5dcca90c8 100644 --- a/apps/main/src/loan/components/PageLlamaMarkets/cells/UtilizationCell.tsx +++ b/apps/main/src/loan/components/PageLlamaMarkets/cells/UtilizationCell.tsx @@ -1,4 +1,4 @@ -import { LendingVault } from '@loan/entities/vaults' +import { LendingVault } from '@/loan/entities/vaults' import { CellContext } from '@tanstack/react-table' import { LinearProgress } from '@ui-kit/shared/ui/LinearProgress' import Stack from '@mui/material/Stack' diff --git a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfo.tsx b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfo.tsx index 548997762..f49202580 100644 --- a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfo.tsx +++ b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfo.tsx @@ -1,15 +1,15 @@ -import type { FormDetailInfo, FormDetailInfoSharedProps } from '@loan/components/PageLoanCreate/types' +import type { FormDetailInfo, FormDetailInfoSharedProps } from '@/loan/components/PageLoanCreate/types' import { t } from '@lingui/macro' import React, { useMemo } from 'react' import { getActiveStep } from '@ui/Stepper/helpers' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import DetailInfo from '@ui/DetailInfo' -import DetailInfoLeverage from '@loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage' -import DetailInfoNonLeverage from '@loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage' +import DetailInfoLeverage from '@/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage' +import DetailInfoNonLeverage from '@/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage' const DetailInfoComp = (props: FormDetailInfo) => { const { activeKeyLiqRange, formValues, isLeverage, isReady, llamma, haveSigner, steps, updateFormValues } = props diff --git a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage.tsx b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage.tsx index 3d2f61bc3..178ce574c 100644 --- a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage.tsx +++ b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoLeverage.tsx @@ -1,23 +1,23 @@ -import type { FormDetailInfo, FormDetailInfoSharedProps } from '@loan/components/PageLoanCreate/types' +import type { FormDetailInfo, FormDetailInfoSharedProps } from '@/loan/components/PageLoanCreate/types' import { t } from '@lingui/macro' import styled from 'styled-components' import React from 'react' -import { DEFAULT_DETAIL_INFO_LEVERAGE } from '@loan/components/PageLoanCreate/utils' -import { getTokenName } from '@loan/utils/utilsLoan' +import { DEFAULT_DETAIL_INFO_LEVERAGE } from '@/loan/components/PageLoanCreate/utils' +import { getTokenName } from '@/loan/utils/utilsLoan' import { formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import DetailInfo from '@ui/DetailInfo' -import DetailInfoBorrowRate from '@loan/components/DetailInfoBorrowRate' -import DetailInfoEstGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@loan/components/DetailInfoHealth' -import DetailInfoLiqRange from '@loan/components/DetailInfoLiqRange' -import DetailInfoLiqRangeEdit from '@loan/components/DetailInfoLiqRangeEdit' -import DetailInfoN from '@loan/components/DetailInfoN' -import DetailInfoSlippageTolerance from '@loan/components/DetailInfoSlippageTolerance' -import DetailInfoTradeRoutes from '@loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoTradeRoutes' +import DetailInfoBorrowRate from '@/loan/components/DetailInfoBorrowRate' +import DetailInfoEstGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/loan/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/loan/components/DetailInfoLiqRange' +import DetailInfoLiqRangeEdit from '@/loan/components/DetailInfoLiqRangeEdit' +import DetailInfoN from '@/loan/components/DetailInfoN' +import DetailInfoSlippageTolerance from '@/loan/components/DetailInfoSlippageTolerance' +import DetailInfoTradeRoutes from '@/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoTradeRoutes' import { useUserProfileStore } from '@ui-kit/features/user-profile' const DetailInfoLeverage = ({ diff --git a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage.tsx b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage.tsx index 57e8645d7..5d43a15b3 100644 --- a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage.tsx +++ b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoNonLeverage.tsx @@ -1,16 +1,16 @@ -import type { FormDetailInfo, FormDetailInfoSharedProps } from '@loan/components/PageLoanCreate/types' +import type { FormDetailInfo, FormDetailInfoSharedProps } from '@/loan/components/PageLoanCreate/types' import React from 'react' -import { DEFAULT_DETAIL_INFO } from '@loan/components/PageLoanManage/utils' -import useStore from '@loan/store/useStore' +import { DEFAULT_DETAIL_INFO } from '@/loan/components/PageLoanManage/utils' +import useStore from '@/loan/store/useStore' -import DetailInfoBorrowRate from '@loan/components/DetailInfoBorrowRate' -import DetailInfoEstGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@loan/components/DetailInfoHealth' -import DetailInfoLiqRange from '@loan/components/DetailInfoLiqRange' -import DetailInfoLiqRangeEdit from '@loan/components/DetailInfoLiqRangeEdit' -import DetailInfoN from '@loan/components/DetailInfoN' +import DetailInfoBorrowRate from '@/loan/components/DetailInfoBorrowRate' +import DetailInfoEstGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/loan/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/loan/components/DetailInfoLiqRange' +import DetailInfoLiqRangeEdit from '@/loan/components/DetailInfoLiqRangeEdit' +import DetailInfoN from '@/loan/components/DetailInfoN' const DetailInfoNonLeverage = ({ activeKey, diff --git a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning.tsx b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning.tsx index 9691a4c5b..d3e24e2c0 100644 --- a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning.tsx +++ b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning.tsx @@ -5,7 +5,7 @@ import styled from 'styled-components' import AlertBox from '@ui/AlertBox' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' -import { HealthMode } from '@loan/types/loan.types' +import { HealthMode } from '@/loan/types/loan.types' function DialogHealthLeverageWarning({ confirmed, diff --git a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/index.tsx b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/index.tsx index 8f9d5c973..69fc84f25 100644 --- a/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/index.tsx +++ b/apps/main/src/loan/components/PageLoanCreate/LoanFormCreate/index.tsx @@ -1,37 +1,37 @@ -import type { FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormValues, FormStatus, StepKey, PageLoanCreateProps } from '@loan/components/PageLoanCreate/types' +import type { FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormValues, FormStatus, StepKey, PageLoanCreateProps } from '@/loan/components/PageLoanCreate/types' import type { Step } from '@ui/Stepper/types' import { t, Trans } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE, hasDeleverage } from '@loan/components/PageLoanManage/utils' -import { DEFAULT_WALLET_BALANCES } from '@loan/components/LoanInfoUser/utils' -import { DEFAULT_FORM_STATUS } from '@loan/store/createLoanCollateralIncreaseSlice' +import { DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE, hasDeleverage } from '@/loan/components/PageLoanManage/utils' +import { DEFAULT_WALLET_BALANCES } from '@/loan/components/LoanInfoUser/utils' +import { DEFAULT_FORM_STATUS } from '@/loan/store/createLoanCollateralIncreaseSlice' import { formatNumber } from '@ui/utils' -import { getLoanManagePathname } from '@loan/utils/utilsRouter' -import { getStepStatus, getTokenName } from '@loan/utils/utilsLoan' -import { curveProps } from '@loan/utils/helpers' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' +import { getLoanManagePathname } from '@/loan/utils/utilsRouter' +import { getStepStatus, getTokenName } from '@/loan/utils/utilsLoan' +import { curveProps } from '@/loan/utils/helpers' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' -import { StyledInpChip } from '@loan/components/PageLoanManage/styles' +import { StyledInpChip } from '@/loan/components/PageLoanManage/styles' import Accordion from '@ui/Accordion' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@loan/components/AlertFormError' +import AlertFormError from '@/loan/components/AlertFormError' import Box from '@ui/Box' -import DetailInfo from '@loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfo' -import DialogHealthWarning from '@loan/components/DialogHealthWarning' +import DetailInfo from '@/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfo' +import DialogHealthWarning from '@/loan/components/DialogHealthWarning' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' import LinkButton from '@ui/LinkButton' -import LoanFormConnect from '@loan/components/LoanFormConnect' -import LoanInfoParameters from '@loan/components/LoanInfoLlamma/LoanInfoParameters' +import LoanFormConnect from '@/loan/components/LoanFormConnect' +import LoanInfoParameters from '@/loan/components/LoanInfoLlamma/LoanInfoParameters' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import DialogHealthLeverageWarning from '@loan/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning' +import DialogHealthLeverageWarning from '@/loan/components/PageLoanCreate/LoanFormCreate/components/DialogHealthLeverageWarning' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma, CollateralAlert } from '@loan/types/loan.types' +import { Curve, Llamma, CollateralAlert } from '@/loan/types/loan.types' const LoanCreate = ({ collateralAlert, diff --git a/apps/main/src/loan/components/PageLoanCreate/Page.tsx b/apps/main/src/loan/components/PageLoanCreate/Page.tsx index 64dc0dfa9..1f8b61576 100644 --- a/apps/main/src/loan/components/PageLoanCreate/Page.tsx +++ b/apps/main/src/loan/components/PageLoanCreate/Page.tsx @@ -5,15 +5,15 @@ import { useCallback, useEffect, useState } from 'react' import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' -import { REFRESH_INTERVAL } from '@loan/constants' +import { REFRESH_INTERVAL } from '@/loan/constants' import { breakpoints } from '@ui/utils/responsive' -import { getCollateralListPathname, getLoanCreatePathname, getLoanManagePathname } from '@loan/utils/utilsRouter' -import { getTokenName } from '@loan/utils/utilsLoan' -import { hasLeverage } from '@loan/components/PageLoanCreate/utils' -import { scrollToTop } from '@loan/utils/helpers' -import usePageOnMount from '@loan/hooks/usePageOnMount' -import useStore from '@loan/store/useStore' -import useTitleMapper from '@loan/hooks/useTitleMapper' +import { getCollateralListPathname, getLoanCreatePathname, getLoanManagePathname } from '@/loan/utils/utilsRouter' +import { getTokenName } from '@/loan/utils/utilsLoan' +import { hasLeverage } from '@/loan/components/PageLoanCreate/utils' +import { scrollToTop } from '@/loan/utils/helpers' +import usePageOnMount from '@/loan/hooks/usePageOnMount' +import useStore from '@/loan/store/useStore' +import useTitleMapper from '@/loan/hooks/useTitleMapper' import { AppPageFormContainer, @@ -23,18 +23,18 @@ import { AppPageInfoContentWrapper, AppPageInfoWrapper, } from '@ui/AppPage' -import ChartOhlcWrapper from '@loan/components/ChartOhlcWrapper' +import ChartOhlcWrapper from '@/loan/components/ChartOhlcWrapper' import Box from '@ui/Box' -import DocumentHead from '@loan/layout/DocumentHead' -import LoanCreate from '@loan/components/PageLoanCreate/index' -import usePageVisibleInterval from '@loan/hooks/usePageVisibleInterval' -import LoanInfoLlamma from '@loan/components/LoanInfoLlamma' +import DocumentHead from '@/loan/layout/DocumentHead' +import LoanCreate from '@/loan/components/PageLoanCreate/index' +import usePageVisibleInterval from '@/loan/hooks/usePageVisibleInterval' +import LoanInfoLlamma from '@/loan/components/LoanInfoLlamma' import TextEllipsis from '@ui/TextEllipsis' import Button from '@ui/Button' import Icon from '@ui/Icon' -import ConnectWallet from '@loan/components/ConnectWallet' +import ConnectWallet from '@/loan/components/ConnectWallet' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma } from '@loan/types/loan.types' +import { Curve, Llamma } from '@/loan/types/loan.types' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/loan/components/PageLoanCreate/index.tsx b/apps/main/src/loan/components/PageLoanCreate/index.tsx index 0f9e0b439..c9c03cf8a 100644 --- a/apps/main/src/loan/components/PageLoanCreate/index.tsx +++ b/apps/main/src/loan/components/PageLoanCreate/index.tsx @@ -1,16 +1,16 @@ -import type { FormType, PageLoanCreateProps } from '@loan/components/PageLoanCreate/types' +import type { FormType, PageLoanCreateProps } from '@/loan/components/PageLoanCreate/types' import { t } from '@lingui/macro' import { useCallback } from 'react' import { useNavigate } from 'react-router-dom' -import { getLoanCreatePathname, getLoanManagePathname } from '@loan/utils/utilsRouter' -import { hasLeverage } from '@loan/components/PageLoanCreate/utils' -import useCollateralAlert from '@loan/hooks/useCollateralAlert' +import { getLoanCreatePathname, getLoanManagePathname } from '@/loan/utils/utilsRouter' +import { hasLeverage } from '@/loan/components/PageLoanCreate/utils' +import useCollateralAlert from '@/loan/hooks/useCollateralAlert' import { AppFormContent, AppFormContentWrapper, AppFormHeader } from '@ui/AppForm' -import LoanFormCreate from '@loan/components/PageLoanCreate/LoanFormCreate' -import { Curve, Llamma } from '@loan/types/loan.types' +import LoanFormCreate from '@/loan/components/PageLoanCreate/LoanFormCreate' +import { Curve, Llamma } from '@/loan/types/loan.types' const LoanCreate = ({ fetchInitial, diff --git a/apps/main/src/loan/components/PageLoanCreate/types.ts b/apps/main/src/loan/components/PageLoanCreate/types.ts index 0dcc73428..0dbe4e04e 100644 --- a/apps/main/src/loan/components/PageLoanCreate/types.ts +++ b/apps/main/src/loan/components/PageLoanCreate/types.ts @@ -1,9 +1,9 @@ -import type { FormEstGas, FormStatus as Fs } from '@loan/components/PageLoanManage/types' -import type { LiqRangeSliderIdx } from '@loan/store/types' +import type { FormEstGas, FormStatus as Fs } from '@/loan/components/PageLoanManage/types' +import type { LiqRangeSliderIdx } from '@/loan/store/types' import type { Params } from 'react-router' import type { Step } from '@ui/Stepper/types' import React from 'react' -import { ChainId, Curve, Llamma, HealthMode } from '@loan/types/loan.types' +import { ChainId, Curve, Llamma, HealthMode } from '@/loan/types/loan.types' export type FormType = 'create' | 'leverage' diff --git a/apps/main/src/loan/components/PageLoanCreate/utils.ts b/apps/main/src/loan/components/PageLoanCreate/utils.ts index 46410e592..e17df9b91 100644 --- a/apps/main/src/loan/components/PageLoanCreate/utils.ts +++ b/apps/main/src/loan/components/PageLoanCreate/utils.ts @@ -1,7 +1,7 @@ -import type { FormDetailInfoLeverage, FormStatus, FormValues } from '@loan/components/PageLoanCreate/types' +import type { FormDetailInfoLeverage, FormStatus, FormValues } from '@/loan/components/PageLoanCreate/types' -import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@loan/components/PageLoanManage/utils' -import { Llamma } from '@loan/types/loan.types' +import { DEFAULT_FORM_STATUS as FORM_STATUS } from '@/loan/components/PageLoanManage/utils' +import { Llamma } from '@/loan/types/loan.types' export const DEFAULT_DETAIL_INFO_LEVERAGE: FormDetailInfoLeverage = { collateral: '', diff --git a/apps/main/src/loan/components/PageLoanManage/CollateralDecrease/index.tsx b/apps/main/src/loan/components/PageLoanManage/CollateralDecrease/index.tsx index b808d3b18..7a14138fe 100644 --- a/apps/main/src/loan/components/PageLoanManage/CollateralDecrease/index.tsx +++ b/apps/main/src/loan/components/PageLoanManage/CollateralDecrease/index.tsx @@ -1,36 +1,36 @@ -import type { FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormValues, FormStatus, StepKey } from '@loan/components/PageLoanManage/CollateralDecrease/types' -import type { PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormValues, FormStatus, StepKey } from '@/loan/components/PageLoanManage/CollateralDecrease/types' +import type { PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' -import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE } from '@loan/components/PageLoanManage/utils' -import { DEFAULT_WALLET_BALANCES } from '@loan/components/LoanInfoUser/utils' -import { DEFAULT_FORM_STATUS } from '@loan/store/createLoanCollateralDecreaseSlice' -import { curveProps } from '@loan/utils/helpers' +import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE } from '@/loan/components/PageLoanManage/utils' +import { DEFAULT_WALLET_BALANCES } from '@/loan/components/LoanInfoUser/utils' +import { DEFAULT_FORM_STATUS } from '@/loan/store/createLoanCollateralDecreaseSlice' +import { curveProps } from '@/loan/utils/helpers' import { getActiveStep } from '@ui/Stepper/helpers' -import { getStepStatus, getTokenName } from '@loan/utils/utilsLoan' +import { getStepStatus, getTokenName } from '@/loan/utils/utilsLoan' import { formatNumber } from '@ui/utils' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' -import { StyledInpChip, StyledDetailInfoWrapper } from '@loan/components/PageLoanManage/styles' +import { StyledInpChip, StyledDetailInfoWrapper } from '@/loan/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@loan/components/AlertFormError' +import AlertFormError from '@/loan/components/AlertFormError' import Box from '@ui/Box' -import DetailInfoBorrowRate from '@loan/components/DetailInfoBorrowRate' -import DetailInfoEstimateGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@loan/components/DetailInfoHealth' -import DetailInfoLiqRange from '@loan/components/DetailInfoLiqRange' -import DialogHealthWarning from '@loan/components/DialogHealthWarning' +import DetailInfoBorrowRate from '@/loan/components/DetailInfoBorrowRate' +import DetailInfoEstimateGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/loan/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/loan/components/DetailInfoLiqRange' +import DialogHealthWarning from '@/loan/components/DialogHealthWarning' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanFormConnect from '@loan/components/LoanFormConnect' +import LoanFormConnect from '@/loan/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma } from '@loan/types/loan.types' +import { Curve, Llamma } from '@/loan/types/loan.types' interface Props extends Pick {} diff --git a/apps/main/src/loan/components/PageLoanManage/CollateralDecrease/types.ts b/apps/main/src/loan/components/PageLoanManage/CollateralDecrease/types.ts index 8400210fd..109e43db9 100644 --- a/apps/main/src/loan/components/PageLoanManage/CollateralDecrease/types.ts +++ b/apps/main/src/loan/components/PageLoanManage/CollateralDecrease/types.ts @@ -1,5 +1,5 @@ -import type { FormDetailInfo as Di, FormStatus as Fs } from '@loan/components/PageLoanManage/types' -import { LiqRange } from '@loan/types/loan.types' +import type { FormDetailInfo as Di, FormStatus as Fs } from '@/loan/components/PageLoanManage/types' +import { LiqRange } from '@/loan/types/loan.types' export type FormValues = { collateral: string diff --git a/apps/main/src/loan/components/PageLoanManage/CollateralIncrease/index.tsx b/apps/main/src/loan/components/PageLoanManage/CollateralIncrease/index.tsx index 1f32649db..d52f420c3 100644 --- a/apps/main/src/loan/components/PageLoanManage/CollateralIncrease/index.tsx +++ b/apps/main/src/loan/components/PageLoanManage/CollateralIncrease/index.tsx @@ -1,36 +1,36 @@ -import type { FormValues, FormStatus, StepKey } from '@loan/components/PageLoanManage/CollateralIncrease/types' -import type { FormEstGas, PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { FormValues, FormStatus, StepKey } from '@/loan/components/PageLoanManage/CollateralIncrease/types' +import type { FormEstGas, PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import type { ReactNode } from 'react' import type { Step } from '@ui/Stepper/types' import React, { useCallback, useEffect, useRef, useState } from 'react' import { t } from '@lingui/macro' -import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE } from '@loan/components/PageLoanManage/utils' -import { DEFAULT_FORM_STATUS } from '@loan/store/createLoanCollateralIncreaseSlice' -import { DEFAULT_WALLET_BALANCES } from '@loan/components/LoanInfoUser/utils' -import { curveProps } from '@loan/utils/helpers' +import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE } from '@/loan/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS } from '@/loan/store/createLoanCollateralIncreaseSlice' +import { DEFAULT_WALLET_BALANCES } from '@/loan/components/LoanInfoUser/utils' +import { curveProps } from '@/loan/utils/helpers' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { getStepStatus, getTokenName } from '@loan/utils/utilsLoan' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' +import { getStepStatus, getTokenName } from '@/loan/utils/utilsLoan' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' -import { StyledDetailInfoWrapper, StyledInpChip } from '@loan/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper, StyledInpChip } from '@/loan/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@loan/components/AlertFormError' +import AlertFormError from '@/loan/components/AlertFormError' import Box from '@ui/Box' -import DialogHealthWarning from '@loan/components/DialogHealthWarning' -import DetailInfoBorrowRate from '@loan/components/DetailInfoBorrowRate' -import DetailInfoEstimateGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@loan/components/DetailInfoHealth' -import DetailInfoLiqRange from '@loan/components/DetailInfoLiqRange' +import DialogHealthWarning from '@/loan/components/DialogHealthWarning' +import DetailInfoBorrowRate from '@/loan/components/DetailInfoBorrowRate' +import DetailInfoEstimateGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/loan/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/loan/components/DetailInfoLiqRange' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanFormConnect from '@loan/components/LoanFormConnect' +import LoanFormConnect from '@/loan/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma } from '@loan/types/loan.types' +import { Curve, Llamma } from '@/loan/types/loan.types' interface Props extends Pick {} diff --git a/apps/main/src/loan/components/PageLoanManage/CollateralIncrease/types.ts b/apps/main/src/loan/components/PageLoanManage/CollateralIncrease/types.ts index 500737e24..8b9f5faa9 100644 --- a/apps/main/src/loan/components/PageLoanManage/CollateralIncrease/types.ts +++ b/apps/main/src/loan/components/PageLoanManage/CollateralIncrease/types.ts @@ -1,5 +1,5 @@ -import type { FormDetailInfo as Di, FormStatus as Fs } from '@loan/components/PageLoanManage/types' -import { LiqRange } from '@loan/types/loan.types' +import type { FormDetailInfo as Di, FormStatus as Fs } from '@/loan/components/PageLoanManage/types' +import { LiqRange } from '@/loan/types/loan.types' export type FormValues = { collateral: string diff --git a/apps/main/src/loan/components/PageLoanManage/LoanDecrease/index.tsx b/apps/main/src/loan/components/PageLoanManage/LoanDecrease/index.tsx index 5881f84bd..174fa5d0c 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanDecrease/index.tsx +++ b/apps/main/src/loan/components/PageLoanManage/LoanDecrease/index.tsx @@ -1,37 +1,37 @@ -import type { FormValues, FormStatus, StepKey } from '@loan/components/PageLoanManage/LoanDecrease/types' -import type { FormEstGas, PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { FormValues, FormStatus, StepKey } from '@/loan/components/PageLoanManage/LoanDecrease/types' +import type { FormEstGas, PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import { useNavigate } from 'react-router-dom' import React, { useCallback, useEffect, useRef, useState } from 'react' -import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE } from '@loan/components/PageLoanManage/utils' -import { DEFAULT_FORM_STATUS } from '@loan/store/createLoanDecreaseSlice' -import { DEFAULT_WALLET_BALANCES } from '@loan/components/LoanInfoUser/utils' -import { curveProps } from '@loan/utils/helpers' +import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE } from '@/loan/components/PageLoanManage/utils' +import { DEFAULT_FORM_STATUS } from '@/loan/store/createLoanDecreaseSlice' +import { DEFAULT_WALLET_BALANCES } from '@/loan/components/LoanInfoUser/utils' +import { curveProps } from '@/loan/utils/helpers' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { getCollateralListPathname } from '@loan/utils/utilsRouter' -import { getStepStatus, getTokenName } from '@loan/utils/utilsLoan' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' - -import { StyledDetailInfoWrapper, StyledInpChip } from '@loan/components/PageLoanManage/styles' -import AlertFormError from '@loan/components/AlertFormError' -import AlertFormWarning from '@loan/components/AlertFormWarning' +import { getCollateralListPathname } from '@/loan/utils/utilsRouter' +import { getStepStatus, getTokenName } from '@/loan/utils/utilsLoan' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' + +import { StyledDetailInfoWrapper, StyledInpChip } from '@/loan/components/PageLoanManage/styles' +import AlertFormError from '@/loan/components/AlertFormError' +import AlertFormWarning from '@/loan/components/AlertFormWarning' import Box from '@ui/Box' import Checkbox from '@ui/Checkbox' -import DetailInfoBorrowRate from '@loan/components/DetailInfoBorrowRate' -import DetailInfoEstimateGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@loan/components/DetailInfoHealth' -import DetailInfoLiqRange from '@loan/components/DetailInfoLiqRange' +import DetailInfoBorrowRate from '@/loan/components/DetailInfoBorrowRate' +import DetailInfoEstimateGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/loan/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/loan/components/DetailInfoLiqRange' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanFormConnect from '@loan/components/LoanFormConnect' +import LoanFormConnect from '@/loan/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma } from '@loan/types/loan.types' +import { Curve, Llamma } from '@/loan/types/loan.types' interface Props extends Pick {} diff --git a/apps/main/src/loan/components/PageLoanManage/LoanDecrease/types.ts b/apps/main/src/loan/components/PageLoanManage/LoanDecrease/types.ts index 4ae7a6f33..cd6433e33 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanDecrease/types.ts +++ b/apps/main/src/loan/components/PageLoanManage/LoanDecrease/types.ts @@ -1,5 +1,5 @@ -import type { FormDetailInfo as Di, FormStatus as Fs } from '@loan/components/PageLoanManage/types' -import { LiqRange } from '@loan/types/loan.types' +import type { FormDetailInfo as Di, FormStatus as Fs } from '@/loan/components/PageLoanManage/types' +import { LiqRange } from '@/loan/types/loan.types' export type FormValues = { debt: string diff --git a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertFull.tsx b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertFull.tsx index ed6f479dc..7a6ab5b4b 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertFull.tsx +++ b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertFull.tsx @@ -1,14 +1,14 @@ -import type { FormValues } from '@loan/components/PageLoanManage/LoanDeleverage/types' +import type { FormValues } from '@/loan/components/PageLoanManage/LoanDeleverage/types' import { t } from '@lingui/macro' import styled from 'styled-components' import React from 'react' -import { getTokenName } from '@loan/utils/utilsLoan' +import { getTokenName } from '@/loan/utils/utilsLoan' import { formatNumber, getFractionDigitsOptions } from '@ui/utils' import Box from '@ui/Box' import DetailInfo from '@ui/DetailInfo' -import { Llamma, UserLoanDetails } from '@loan/types/loan.types' +import { Llamma, UserLoanDetails } from '@/loan/types/loan.types' // Deleverage full repayment will result in the following changes to user wallet: // 1. wallet.collateral = userState.collateral - formValues.collateral diff --git a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertPartial.tsx b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertPartial.tsx index f60aa1a30..1c0b9a968 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertPartial.tsx +++ b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertPartial.tsx @@ -1,16 +1,16 @@ -import type { FormValues } from '@loan/components/PageLoanManage/LoanDeleverage/types' +import type { FormValues } from '@/loan/components/PageLoanManage/LoanDeleverage/types' import { t } from '@lingui/macro' import styled from 'styled-components' import React from 'react' import { formatNumber, getFractionDigitsOptions } from '@ui/utils' -import { getTokenName } from '@loan/utils/utilsLoan' +import { getTokenName } from '@/loan/utils/utilsLoan' import Box from '@ui/Box' import DetailInfo from '@ui/DetailInfo' import Icon from '@ui/Icon' -import { Llamma, UserLoanDetails } from '@loan/types/loan.types' +import { Llamma, UserLoanDetails } from '@/loan/types/loan.types' // Deleverage partial payment will only result in state change, user will not receive any tokens to wallet. // 1. userState.collateral = old userState.collateral - formValues.collateral diff --git a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/index.tsx b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/index.tsx index 140b0a393..3a8e8e5e6 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/index.tsx +++ b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/index.tsx @@ -1,5 +1,5 @@ -import type { FormValues, FormStatus, FormDetailInfo } from '@loan/components/PageLoanManage/LoanDeleverage/types' -import type { PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { FormValues, FormStatus, FormDetailInfo } from '@/loan/components/PageLoanManage/LoanDeleverage/types' +import type { PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' @@ -12,39 +12,39 @@ import { DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE, hasDeleverage, -} from '@loan/components/PageLoanManage/utils' -import { DEFAULT_FORM_VALUES } from '@loan/components/PageLoanManage/LoanDeleverage/utils' -import { REFRESH_INTERVAL } from '@loan/constants' -import { curveProps } from '@loan/utils/helpers' +} from '@/loan/components/PageLoanManage/utils' +import { DEFAULT_FORM_VALUES } from '@/loan/components/PageLoanManage/LoanDeleverage/utils' +import { REFRESH_INTERVAL } from '@/loan/constants' +import { curveProps } from '@/loan/utils/helpers' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { getCollateralListPathname } from '@loan/utils/utilsRouter' -import { getStepStatus, getTokenName } from '@loan/utils/utilsLoan' -import networks from '@loan/networks' -import usePageVisibleInterval from '@loan/hooks/usePageVisibleInterval' -import useStore from '@loan/store/useStore' +import { getCollateralListPathname } from '@/loan/utils/utilsRouter' +import { getStepStatus, getTokenName } from '@/loan/utils/utilsLoan' +import networks from '@/loan/networks' +import usePageVisibleInterval from '@/loan/hooks/usePageVisibleInterval' +import useStore from '@/loan/store/useStore' -import { StyledDetailInfoWrapper, StyledInpChip } from '@loan/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper, StyledInpChip } from '@/loan/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' -import AlertFormError from '@loan/components/AlertFormError' -import AlertFormWarning from '@loan/components/AlertFormWarning' +import AlertFormError from '@/loan/components/AlertFormError' +import AlertFormWarning from '@/loan/components/AlertFormWarning' import Box from '@ui/Box' import DetailInfo from '@ui/DetailInfo' -import DetailInfoBorrowRate from '@loan/components/DetailInfoBorrowRate' -import DetailInfoEstimateGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@loan/components/DetailInfoHealth' -import DetailInfoLiqRange from '@loan/components/DetailInfoLiqRange' -import DialogHighPriceImpactWarning from '@loan/components/PageLoanManage/LoanDeleverage/components/DialogHighPriceImpactWarning' -import DetailInfoSlippageTolerance from '@loan/components/DetailInfoSlippageTolerance' -import DetailInfoTradeRoutes from '@loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoTradeRoutes' +import DetailInfoBorrowRate from '@/loan/components/DetailInfoBorrowRate' +import DetailInfoEstimateGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/loan/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/loan/components/DetailInfoLiqRange' +import DialogHighPriceImpactWarning from '@/loan/components/PageLoanManage/LoanDeleverage/components/DialogHighPriceImpactWarning' +import DetailInfoSlippageTolerance from '@/loan/components/DetailInfoSlippageTolerance' +import DetailInfoTradeRoutes from '@/loan/components/PageLoanCreate/LoanFormCreate/components/DetailInfoTradeRoutes' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanDeleverageAlertFull from '@loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertFull' -import LoanDeleverageAlertPartial from '@loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertPartial' -import LoanFormConnect from '@loan/components/LoanFormConnect' +import LoanDeleverageAlertFull from '@/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertFull' +import LoanDeleverageAlertPartial from '@/loan/components/PageLoanManage/LoanDeleverage/components/LoanDeleverageAlertPartial' +import LoanFormConnect from '@/loan/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma } from '@loan/types/loan.types' +import { Curve, Llamma } from '@/loan/types/loan.types' // Loan Deleverage const LoanDeleverage = ({ diff --git a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/types.ts b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/types.ts index e064978e3..1002ca185 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/types.ts +++ b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/types.ts @@ -1,5 +1,5 @@ -import type { FormDetailInfo as Di, FormStatus as Fs } from '@loan/components/PageLoanManage/types' -import { LiqRange } from '@loan/types/loan.types' +import type { FormDetailInfo as Di, FormStatus as Fs } from '@/loan/components/PageLoanManage/types' +import { LiqRange } from '@/loan/types/loan.types' export type FormValues = { isFullRepay: boolean diff --git a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/utils.ts b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/utils.ts index c69d4db92..5f03c6cd8 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/utils.ts +++ b/apps/main/src/loan/components/PageLoanManage/LoanDeleverage/utils.ts @@ -1,9 +1,9 @@ -import type { FormDetailInfo, FormStatus, FormValues } from '@loan/components/PageLoanManage/LoanDeleverage/types' +import type { FormDetailInfo, FormStatus, FormValues } from '@/loan/components/PageLoanManage/LoanDeleverage/types' import { DEFAULT_DETAIL_INFO as DETAIL_INFO, DEFAULT_FORM_STATUS as FORM_STATUS, -} from '@loan/components/PageLoanManage/utils' +} from '@/loan/components/PageLoanManage/utils' export const DEFAULT_FORM_STATUS: FormStatus = { ...FORM_STATUS, diff --git a/apps/main/src/loan/components/PageLoanManage/LoanIncrease/index.tsx b/apps/main/src/loan/components/PageLoanManage/LoanIncrease/index.tsx index 243902793..5f20e840c 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanIncrease/index.tsx +++ b/apps/main/src/loan/components/PageLoanManage/LoanIncrease/index.tsx @@ -1,39 +1,39 @@ -import type { FormValues, FormStatus, StepKey } from '@loan/components/PageLoanManage/LoanIncrease/types' -import type { FormEstGas, PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { FormValues, FormStatus, StepKey } from '@/loan/components/PageLoanManage/LoanIncrease/types' +import type { FormEstGas, PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' -import { DEFAULT_FORM_STATUS, getMaxRecvActiveKey } from '@loan/store/createLoanIncreaseSlice' +import { DEFAULT_FORM_STATUS, getMaxRecvActiveKey } from '@/loan/store/createLoanIncreaseSlice' import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_HEALTH_MODE, DEFAULT_USER_WALLET_BALANCES, -} from '@loan/components/PageLoanManage/utils' -import { curveProps } from '@loan/utils/helpers' +} from '@/loan/components/PageLoanManage/utils' +import { curveProps } from '@/loan/utils/helpers' import { formatNumber } from '@ui/utils' import { getActiveStep } from '@ui/Stepper/helpers' -import { getStepStatus, getTokenName } from '@loan/utils/utilsLoan' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' +import { getStepStatus, getTokenName } from '@/loan/utils/utilsLoan' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' -import { StyledDetailInfoWrapper, StyledInpChip } from '@loan/components/PageLoanManage/styles' +import { StyledDetailInfoWrapper, StyledInpChip } from '@/loan/components/PageLoanManage/styles' import AlertBox from '@ui/AlertBox' import Box from '@ui/Box' -import DetailInfoBorrowRate from '@loan/components/DetailInfoBorrowRate' -import DetailInfoEstimateGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoHealth from '@loan/components/DetailInfoHealth' -import DetailInfoLiqRange from '@loan/components/DetailInfoLiqRange' -import DialogHealthWarning from '@loan/components/DialogHealthWarning' +import DetailInfoBorrowRate from '@/loan/components/DetailInfoBorrowRate' +import DetailInfoEstimateGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoHealth from '@/loan/components/DetailInfoHealth' +import DetailInfoLiqRange from '@/loan/components/DetailInfoLiqRange' +import DialogHealthWarning from '@/loan/components/DialogHealthWarning' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanFormConnect from '@loan/components/LoanFormConnect' +import LoanFormConnect from '@/loan/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import AlertFormError from '@loan/components/AlertFormError' +import AlertFormError from '@/loan/components/AlertFormError' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma } from '@loan/types/loan.types' +import { Curve, Llamma } from '@/loan/types/loan.types' interface Props extends Pick {} diff --git a/apps/main/src/loan/components/PageLoanManage/LoanIncrease/types.ts b/apps/main/src/loan/components/PageLoanManage/LoanIncrease/types.ts index c8496c327..55436612a 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanIncrease/types.ts +++ b/apps/main/src/loan/components/PageLoanManage/LoanIncrease/types.ts @@ -1,5 +1,5 @@ -import type { FormDetailInfo as Di, FormStatus as Fs } from '@loan/components/PageLoanManage/types' -import { LiqRange } from '@loan/types/loan.types' +import type { FormDetailInfo as Di, FormStatus as Fs } from '@/loan/components/PageLoanManage/types' +import { LiqRange } from '@/loan/types/loan.types' export type FormValues = { collateral: string diff --git a/apps/main/src/loan/components/PageLoanManage/LoanLiquidate/index.tsx b/apps/main/src/loan/components/PageLoanManage/LoanLiquidate/index.tsx index 32534cd0a..f8bae41a9 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanLiquidate/index.tsx +++ b/apps/main/src/loan/components/PageLoanManage/LoanLiquidate/index.tsx @@ -1,33 +1,33 @@ -import type { FormStatus, StepKey } from '@loan/components/PageLoanManage/LoanLiquidate/types' -import type { FormEstGas, PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { FormStatus, StepKey } from '@/loan/components/PageLoanManage/LoanLiquidate/types' +import type { FormEstGas, PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { t, Trans } from '@lingui/macro' import React, { useCallback, useEffect, useRef, useState } from 'react' import styled from 'styled-components' -import { DEFAULT_FORM_STATUS, haveEnoughCrvusdForLiquidation } from '@loan/store/createLoanLiquidate' -import { DEFAULT_FORM_EST_GAS } from '@loan/components/PageLoanManage/utils' -import { curveProps } from '@loan/utils/helpers' +import { DEFAULT_FORM_STATUS, haveEnoughCrvusdForLiquidation } from '@/loan/store/createLoanLiquidate' +import { DEFAULT_FORM_EST_GAS } from '@/loan/components/PageLoanManage/utils' +import { curveProps } from '@/loan/utils/helpers' import { getActiveStep } from '@ui/Stepper/helpers' -import { getCollateralListPathname } from '@loan/utils/utilsRouter' -import { getStepStatus, getTokenName } from '@loan/utils/utilsLoan' +import { getCollateralListPathname } from '@/loan/utils/utilsRouter' +import { getStepStatus, getTokenName } from '@/loan/utils/utilsLoan' import { formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' -import networks from '@loan/networks' +import useStore from '@/loan/store/useStore' +import networks from '@/loan/networks' -import AlertFormWarning from '@loan/components/AlertFormWarning' -import AlertFormError from '@loan/components/AlertFormError' +import AlertFormWarning from '@/loan/components/AlertFormWarning' +import AlertFormError from '@/loan/components/AlertFormError' import AlertInfoSelfLiquidation from '@ui/AlertBox/AlertInfoSelfLiquidation' -import DetailInfoEstimateGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoSlippageTolerance from '@loan/components/DetailInfoSlippageTolerance' +import DetailInfoEstimateGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoSlippageTolerance from '@/loan/components/DetailInfoSlippageTolerance' import InputReadOnly from '@ui/InputReadOnly' import InternalLink from '@ui/Link/InternalLink' -import LoanFormConnect from '@loan/components/LoanFormConnect' +import LoanFormConnect from '@/loan/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma, UserWalletBalances } from '@loan/types/loan.types' +import { Curve, Llamma, UserWalletBalances } from '@/loan/types/loan.types' interface Props extends Pick {} diff --git a/apps/main/src/loan/components/PageLoanManage/LoanLiquidate/types.ts b/apps/main/src/loan/components/PageLoanManage/LoanLiquidate/types.ts index 0a4568388..b65afbe67 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanLiquidate/types.ts +++ b/apps/main/src/loan/components/PageLoanManage/LoanLiquidate/types.ts @@ -1,4 +1,4 @@ -import type { FormStatus as Fs } from '@loan/components/PageLoanManage/types' +import type { FormStatus as Fs } from '@/loan/components/PageLoanManage/types' export type FormValues = { maxSlippage: string diff --git a/apps/main/src/loan/components/PageLoanManage/LoanSwap/index.tsx b/apps/main/src/loan/components/PageLoanManage/LoanSwap/index.tsx index 47b20c36d..32cbe2055 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanSwap/index.tsx +++ b/apps/main/src/loan/components/PageLoanManage/LoanSwap/index.tsx @@ -1,35 +1,35 @@ -import type { FormValues, FormStatus, StepKey } from '@loan/components/PageLoanManage/LoanSwap/types' -import type { FormEstGas, PageLoanManageProps } from '@loan/components/PageLoanManage/types' +import type { FormValues, FormStatus, StepKey } from '@/loan/components/PageLoanManage/LoanSwap/types' +import type { FormEstGas, PageLoanManageProps } from '@/loan/components/PageLoanManage/types' import type { Step } from '@ui/Stepper/types' import { t } from '@lingui/macro' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@loan/store/createLoanSwap' -import { DEFAULT_FORM_EST_GAS } from '@loan/components/PageLoanManage/utils' -import { DEFAULT_WALLET_BALANCES } from '@loan/components/LoanInfoUser/utils' -import { curveProps } from '@loan/utils/helpers' +import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES } from '@/loan/store/createLoanSwap' +import { DEFAULT_FORM_EST_GAS } from '@/loan/components/PageLoanManage/utils' +import { DEFAULT_WALLET_BALANCES } from '@/loan/components/LoanInfoUser/utils' +import { curveProps } from '@/loan/utils/helpers' import { getActiveStep } from '@ui/Stepper/helpers' -import { getStepStatus, getTokenName } from '@loan/utils/utilsLoan' +import { getStepStatus, getTokenName } from '@/loan/utils/utilsLoan' import { formatNumber } from '@ui/utils' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' -import { StyledInpChip } from '@loan/components/PageLoanManage/styles' +import { StyledInpChip } from '@/loan/components/PageLoanManage/styles' import Box from '@ui/Box' import DetailInfoComp from '@ui/DetailInfo' -import DetailInfoEstimateGas from '@loan/components/DetailInfoEstimateGas' -import DetailInfoSlippageTolerance from '@loan/components/DetailInfoSlippageTolerance' +import DetailInfoEstimateGas from '@/loan/components/DetailInfoEstimateGas' +import DetailInfoSlippageTolerance from '@/loan/components/DetailInfoSlippageTolerance' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' import InputProvider, { InputDebounced, InputMaxBtn } from '@ui/InputComp' -import LoanFormConnect from '@loan/components/LoanFormConnect' +import LoanFormConnect from '@/loan/components/LoanFormConnect' import Stepper from '@ui/Stepper' import TxInfoBar from '@ui/TxInfoBar' -import { getItemsName } from '@loan/components/PageLoanManage/LoanSwap/utils' -import AlertFormError from '@loan/components/AlertFormError' +import { getItemsName } from '@/loan/components/PageLoanManage/LoanSwap/utils' +import AlertFormError from '@/loan/components/AlertFormError' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { Curve, Llamma } from '@loan/types/loan.types' +import { Curve, Llamma } from '@/loan/types/loan.types' interface Props extends Pick {} diff --git a/apps/main/src/loan/components/PageLoanManage/LoanSwap/types.ts b/apps/main/src/loan/components/PageLoanManage/LoanSwap/types.ts index ebb1231f0..a89841d6f 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanSwap/types.ts +++ b/apps/main/src/loan/components/PageLoanManage/LoanSwap/types.ts @@ -1,4 +1,4 @@ -import type { FormStatus as Fs } from '@loan/components/PageLoanManage/types' +import type { FormStatus as Fs } from '@/loan/components/PageLoanManage/types' export type ItemKey = '0' | '1' diff --git a/apps/main/src/loan/components/PageLoanManage/LoanSwap/utils.ts b/apps/main/src/loan/components/PageLoanManage/LoanSwap/utils.ts index 0eb2a7daf..a99d9b722 100644 --- a/apps/main/src/loan/components/PageLoanManage/LoanSwap/utils.ts +++ b/apps/main/src/loan/components/PageLoanManage/LoanSwap/utils.ts @@ -1,5 +1,5 @@ -import { FormValues } from '@loan/components/PageLoanManage/LoanSwap/types' -import { Llamma } from '@loan/types/loan.types' +import { FormValues } from '@/loan/components/PageLoanManage/LoanSwap/types' +import { Llamma } from '@/loan/types/loan.types' export function getItemsName(llamma: Llamma, formValues: FormValues) { return { diff --git a/apps/main/src/loan/components/PageLoanManage/Page.tsx b/apps/main/src/loan/components/PageLoanManage/Page.tsx index d11e9ef92..fc29fb7d0 100644 --- a/apps/main/src/loan/components/PageLoanManage/Page.tsx +++ b/apps/main/src/loan/components/PageLoanManage/Page.tsx @@ -1,21 +1,21 @@ import type { NextPage } from 'next' -import type { DetailInfoTypes, FormType } from '@loan/components/PageLoanManage/types' +import type { DetailInfoTypes, FormType } from '@/loan/components/PageLoanManage/types' import { t } from '@lingui/macro' import { useEffect, useMemo, useState } from 'react' import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' -import { REFRESH_INTERVAL } from '@loan/constants' +import { REFRESH_INTERVAL } from '@/loan/constants' import { breakpoints } from '@ui/utils/responsive' -import { getCollateralListPathname, getLoanCreatePathname } from '@loan/utils/utilsRouter' -import { getTokenName } from '@loan/utils/utilsLoan' -import { hasDeleverage } from '@loan/components/PageLoanManage/utils' -import { scrollToTop } from '@loan/utils/helpers' -import usePageOnMount from '@loan/hooks/usePageOnMount' -import usePageVisibleInterval from '@loan/hooks/usePageVisibleInterval' -import useStore from '@loan/store/useStore' -import useTitleMapper from '@loan/hooks/useTitleMapper' +import { getCollateralListPathname, getLoanCreatePathname } from '@/loan/utils/utilsRouter' +import { getTokenName } from '@/loan/utils/utilsLoan' +import { hasDeleverage } from '@/loan/components/PageLoanManage/utils' +import { scrollToTop } from '@/loan/utils/helpers' +import usePageOnMount from '@/loan/hooks/usePageOnMount' +import usePageVisibleInterval from '@/loan/hooks/usePageVisibleInterval' +import useStore from '@/loan/store/useStore' +import useTitleMapper from '@/loan/hooks/useTitleMapper' import { AppPageFormContainer, @@ -26,16 +26,16 @@ import { AppPageInfoWrapper, } from '@ui/AppPage' import Box from '@ui/Box' -import ChartOhlcWrapper from '@loan/components/ChartOhlcWrapper' -import DocumentHead from '@loan/layout/DocumentHead' -import LoanInfoLlamma from '@loan/components/LoanInfoLlamma' -import LoanInfoUser from '@loan/components/LoanInfoUser' -import LoanMange from '@loan/components/PageLoanManage/index' +import ChartOhlcWrapper from '@/loan/components/ChartOhlcWrapper' +import DocumentHead from '@/loan/layout/DocumentHead' +import LoanInfoLlamma from '@/loan/components/LoanInfoLlamma' +import LoanInfoUser from '@/loan/components/LoanInfoUser' +import LoanMange from '@/loan/components/PageLoanManage/index' import Tabs, { Tab } from '@ui/Tab' import TextEllipsis from '@ui/TextEllipsis' import Button from '@ui/Button' import Icon from '@ui/Icon' -import ConnectWallet from '@loan/components/ConnectWallet' +import ConnectWallet from '@/loan/components/ConnectWallet' import { useUserProfileStore } from '@ui-kit/features/user-profile' const Page: NextPage = () => { diff --git a/apps/main/src/loan/components/PageLoanManage/index.tsx b/apps/main/src/loan/components/PageLoanManage/index.tsx index a790c0bbc..72ba51ce2 100644 --- a/apps/main/src/loan/components/PageLoanManage/index.tsx +++ b/apps/main/src/loan/components/PageLoanManage/index.tsx @@ -3,7 +3,7 @@ import type { FormType, LoanFormType, PageLoanManageProps, -} from '@loan/components/PageLoanManage/types' +} from '@/loan/components/PageLoanManage/types' import { t } from '@lingui/macro' import { useCallback, useEffect, useRef, useState } from 'react' @@ -11,17 +11,17 @@ import { useNavigate } from 'react-router-dom' import isUndefined from 'lodash/isUndefined' import styled from 'styled-components' -import { getLoanCreatePathname, getLoanManagePathname } from '@loan/utils/utilsRouter' -import { hasDeleverage } from '@loan/components/PageLoanManage/utils' -import useStore from '@loan/store/useStore' +import { getLoanCreatePathname, getLoanManagePathname } from '@/loan/utils/utilsRouter' +import { hasDeleverage } from '@/loan/components/PageLoanManage/utils' +import useStore from '@/loan/store/useStore' import { AppFormContent, AppFormContentWrapper, AppFormHeader } from '@ui/AppForm' -import CollateralDecrease from '@loan/components/PageLoanManage/CollateralDecrease' -import CollateralIncrease from '@loan/components/PageLoanManage/CollateralIncrease' -import LoanDecrease from '@loan/components/PageLoanManage/LoanDecrease' -import LoanDeleverage from '@loan/components/PageLoanManage/LoanDeleverage' -import LoanIncrease from '@loan/components/PageLoanManage/LoanIncrease' -import LoanLiquidate from '@loan/components/PageLoanManage/LoanLiquidate' +import CollateralDecrease from '@/loan/components/PageLoanManage/CollateralDecrease' +import CollateralIncrease from '@/loan/components/PageLoanManage/CollateralIncrease' +import LoanDecrease from '@/loan/components/PageLoanManage/LoanDecrease' +import LoanDeleverage from '@/loan/components/PageLoanManage/LoanDeleverage' +import LoanIncrease from '@/loan/components/PageLoanManage/LoanIncrease' +import LoanLiquidate from '@/loan/components/PageLoanManage/LoanLiquidate' import SlideTabsWrapper, { SlideTab, SlideTabs } from '@ui/TabSlide' interface Props extends PageLoanManageProps {} diff --git a/apps/main/src/loan/components/PageLoanManage/types.ts b/apps/main/src/loan/components/PageLoanManage/types.ts index 71e402e95..b129bf6df 100644 --- a/apps/main/src/loan/components/PageLoanManage/types.ts +++ b/apps/main/src/loan/components/PageLoanManage/types.ts @@ -1,5 +1,5 @@ import { Params } from 'react-router' -import { ChainId, Curve, Llamma, TitleMapper } from '@loan/types/loan.types' +import { ChainId, Curve, Llamma, TitleMapper } from '@/loan/types/loan.types' export type DetailInfoTypes = 'user' | 'llamma' diff --git a/apps/main/src/loan/components/PageLoanManage/utils.ts b/apps/main/src/loan/components/PageLoanManage/utils.ts index c5428e2ff..a88297956 100644 --- a/apps/main/src/loan/components/PageLoanManage/utils.ts +++ b/apps/main/src/loan/components/PageLoanManage/utils.ts @@ -1,6 +1,6 @@ -import { FormDetailInfo, FormEstGas, FormStatus } from '@loan/components/PageLoanManage/types' -import { INVALID_ADDRESS } from '@loan/constants' -import { Llamma, HealthMode, UserWalletBalances } from '@loan/types/loan.types' +import { FormDetailInfo, FormEstGas, FormStatus } from '@/loan/components/PageLoanManage/types' +import { INVALID_ADDRESS } from '@/loan/constants' +import { Llamma, HealthMode, UserWalletBalances } from '@/loan/types/loan.types' export const DEFAULT_HEALTH_MODE: HealthMode = { percent: '', diff --git a/apps/main/src/loan/components/PageMarketList/Page.tsx b/apps/main/src/loan/components/PageMarketList/Page.tsx index f86209813..23ec9abad 100644 --- a/apps/main/src/loan/components/PageMarketList/Page.tsx +++ b/apps/main/src/loan/components/PageMarketList/Page.tsx @@ -1,26 +1,26 @@ import type { NextPage } from 'next' -import type { SearchParams } from '@loan/components/PageMarketList/types' +import type { SearchParams } from '@/loan/components/PageMarketList/types' import { t } from '@lingui/macro' import { useEffect, useState } from 'react' import { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom' import styled from 'styled-components' -import { DEFAULT_SEARCH_PARAMS } from '@loan/components/PageMarketList/utils' -import { ROUTE, TITLE } from '@loan/constants' +import { DEFAULT_SEARCH_PARAMS } from '@/loan/components/PageMarketList/utils' +import { ROUTE, TITLE } from '@/loan/constants' import { breakpoints } from '@ui/utils/responsive' -import { getPath } from '@loan/utils/utilsRouter' -import { scrollToTop } from '@loan/utils/helpers' -import usePageOnMount from '@loan/hooks/usePageOnMount' -import useSearchTermMapper from '@loan/hooks/useSearchTermMapper' -import useTitleMapper from '@loan/hooks/useTitleMapper' -import useStore from '@loan/store/useStore' - -import DocumentHead from '@loan/layout/DocumentHead' -import CollateralList from '@loan/components/PageMarketList/index' -import Settings from '@loan/layout/Settings' -import TableStats from '@loan/components/PageMarketList/components/TableStats' -import ConnectWallet from '@loan/components/ConnectWallet' +import { getPath } from '@/loan/utils/utilsRouter' +import { scrollToTop } from '@/loan/utils/helpers' +import usePageOnMount from '@/loan/hooks/usePageOnMount' +import useSearchTermMapper from '@/loan/hooks/useSearchTermMapper' +import useTitleMapper from '@/loan/hooks/useTitleMapper' +import useStore from '@/loan/store/useStore' + +import DocumentHead from '@/loan/layout/DocumentHead' +import CollateralList from '@/loan/components/PageMarketList/index' +import Settings from '@/loan/layout/Settings' +import TableStats from '@/loan/components/PageMarketList/components/TableStats' +import ConnectWallet from '@/loan/components/ConnectWallet' import Box from '@ui/Box' enum SEARCH { diff --git a/apps/main/src/loan/components/PageMarketList/components/TableHead/TableHead.tsx b/apps/main/src/loan/components/PageMarketList/components/TableHead/TableHead.tsx index a952db38c..4dfb8498b 100644 --- a/apps/main/src/loan/components/PageMarketList/components/TableHead/TableHead.tsx +++ b/apps/main/src/loan/components/PageMarketList/components/TableHead/TableHead.tsx @@ -1,14 +1,14 @@ import type { TheadSortButtonProps } from '@ui/Table/TheadSortButton' -import type { Order, SearchParams, TableLabel } from '@loan/components/PageMarketList/types' +import type { Order, SearchParams, TableLabel } from '@/loan/components/PageMarketList/types' import styled from 'styled-components' -import { TITLE } from '@loan/constants' -import useStore from '@loan/store/useStore' +import { TITLE } from '@/loan/constants' +import useStore from '@/loan/store/useStore' import { Th, Thead, TheadSortButton } from '@ui/Table' import TooltipIcon from '@ui/Tooltip/TooltipIcon' -import { TitleKey, TitleMapper } from '@loan/types/loan.types' +import { TitleKey, TitleMapper } from '@/loan/types/loan.types' const TableHead = ({ someLoanExists, diff --git a/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRow.tsx b/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRow.tsx index 3b49041a0..2b93ba202 100644 --- a/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRow.tsx +++ b/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRow.tsx @@ -1,19 +1,19 @@ -import type { TableRowProps } from '@loan/components/PageMarketList/types' +import type { TableRowProps } from '@/loan/components/PageMarketList/types' import { t } from '@lingui/macro' import React, { useRef } from 'react' import styled from 'styled-components' -import { TITLE } from '@loan/constants' +import { TITLE } from '@/loan/constants' import useIntersectionObserver from '@ui/hooks/useIntersectionObserver' import { Tr, Td, CellInPool } from '@ui/Table' -import TokenLabel from '@loan/components/TokenLabel' -import TableCellRate from '@loan/components/SharedCells/TableCellRate' -import TableCellTotalCollateral from '@loan/components/SharedCells/TableCellTotalCollateral' -import TableCellUser from '@loan/components/SharedCells/TableCellUser' -import TableCellUtilization from '@loan/components/SharedCells/TableCellUtilization' -import { TitleKey } from '@loan/types/loan.types' +import TokenLabel from '@/loan/components/TokenLabel' +import TableCellRate from '@/loan/components/SharedCells/TableCellRate' +import TableCellTotalCollateral from '@/loan/components/SharedCells/TableCellTotalCollateral' +import TableCellUser from '@/loan/components/SharedCells/TableCellUser' +import TableCellUtilization from '@/loan/components/SharedCells/TableCellUtilization' +import { TitleKey } from '@/loan/types/loan.types' const TableRow = ({ className, diff --git a/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowMobile.tsx b/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowMobile.tsx index 2eb752c71..5e48aa0a9 100644 --- a/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowMobile.tsx +++ b/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowMobile.tsx @@ -1,24 +1,24 @@ -import type { TableRowProps } from '@loan/components/PageMarketList/types' +import type { TableRowProps } from '@/loan/components/PageMarketList/types' import { t } from '@lingui/macro' import React, { useRef } from 'react' import styled from 'styled-components' -import { TITLE } from '@loan/constants' +import { TITLE } from '@/loan/constants' import useIntersectionObserver from '@ui/hooks/useIntersectionObserver' import { Tr, CellInPool } from '@ui/Table' import Box from '@ui/Box' import Button from '@ui/Button' -import TokenLabel from '@loan/components/TokenLabel' +import TokenLabel from '@/loan/components/TokenLabel' import Icon from '@ui/Icon' import IconButton from '@ui/IconButton' import ListInfoItem, { ListInfoItems, ListInfoItemsWrapper } from '@ui/ListInfo' -import TableCellUtilization from '@loan/components/SharedCells/TableCellUtilization' -import TableCellRate from '@loan/components/SharedCells/TableCellRate' -import TableCellTotalCollateral from '@loan/components/SharedCells/TableCellTotalCollateral' -import TableCellUser from '@loan/components/SharedCells/TableCellUser' -import { TitleKey, TitleMapper } from '@loan/types/loan.types' +import TableCellUtilization from '@/loan/components/SharedCells/TableCellUtilization' +import TableCellRate from '@/loan/components/SharedCells/TableCellRate' +import TableCellTotalCollateral from '@/loan/components/SharedCells/TableCellTotalCollateral' +import TableCellUser from '@/loan/components/SharedCells/TableCellUser' +import { TitleKey, TitleMapper } from '@/loan/types/loan.types' const TableRowMobile = ({ className = '', diff --git a/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowNoResult.tsx b/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowNoResult.tsx index 0f3284625..05196e0f4 100644 --- a/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowNoResult.tsx +++ b/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowNoResult.tsx @@ -1,10 +1,10 @@ -import type { SearchParams } from '@loan/components/PageMarketList/types' +import type { SearchParams } from '@/loan/components/PageMarketList/types' import { Trans } from '@lingui/macro' import React from 'react' import styled from 'styled-components' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import { Td, Tr } from '@ui/Table' import Button from '@ui/Button' diff --git a/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowResult.tsx b/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowResult.tsx index 55e3b1c8c..ffc1a7b09 100644 --- a/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowResult.tsx +++ b/apps/main/src/loan/components/PageMarketList/components/TableRow/TableRowResult.tsx @@ -1,15 +1,15 @@ -import type { PageCollateralList, TableRowProps } from '@loan/components/PageMarketList/types' +import type { PageCollateralList, TableRowProps } from '@/loan/components/PageMarketList/types' import React, { useMemo } from 'react' import { useNavigate } from 'react-router-dom' -import { getLoanCreatePathname, getLoanManagePathname } from '@loan/utils/utilsRouter' -import { parseSearchTermMapper } from '@loan/hooks/useSearchTermMapper' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' +import { getLoanCreatePathname, getLoanManagePathname } from '@/loan/utils/utilsRouter' +import { parseSearchTermMapper } from '@/loan/hooks/useSearchTermMapper' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' -import TableRow from '@loan/components/PageMarketList/components/TableRow/TableRow' -import TableRowMobile from '@loan/components/PageMarketList/components/TableRow/TableRowMobile' +import TableRow from '@/loan/components/PageMarketList/components/TableRow/TableRow' +import TableRowMobile from '@/loan/components/PageMarketList/components/TableRow/TableRowMobile' import TrSearchedTextResult from '@ui/Table/TrSearchedTextResult' type Props = Pick & diff --git a/apps/main/src/loan/components/PageMarketList/components/TableSettings/SelectFilterType.tsx b/apps/main/src/loan/components/PageMarketList/components/TableSettings/SelectFilterType.tsx index 4f6e88b0d..adf0f50aa 100644 --- a/apps/main/src/loan/components/PageMarketList/components/TableSettings/SelectFilterType.tsx +++ b/apps/main/src/loan/components/PageMarketList/components/TableSettings/SelectFilterType.tsx @@ -1,14 +1,14 @@ -import type { SearchParams, TableLabel } from '@loan/components/PageMarketList/types' +import type { SearchParams, TableLabel } from '@/loan/components/PageMarketList/types' import React, { useMemo } from 'react' import styled from 'styled-components' -import { TITLE } from '@loan/constants' -import useStore from '@loan/store/useStore' +import { TITLE } from '@/loan/constants' +import useStore from '@/loan/store/useStore' import TableSortSelect from '@ui/TableSort/TableSortSelect' import TableSortSelectMobile from '@ui/TableSort/TableSortSelectMobile' -import { TitleMapper } from '@loan/types/loan.types' +import { TitleMapper } from '@/loan/types/loan.types' const SelectFilterType = ({ someLoanExists, diff --git a/apps/main/src/loan/components/PageMarketList/components/TableSettings/TableSettings.tsx b/apps/main/src/loan/components/PageMarketList/components/TableSettings/TableSettings.tsx index 770c65473..ffef2a04b 100644 --- a/apps/main/src/loan/components/PageMarketList/components/TableSettings/TableSettings.tsx +++ b/apps/main/src/loan/components/PageMarketList/components/TableSettings/TableSettings.tsx @@ -1,13 +1,13 @@ -import type { PageCollateralList, TableLabel } from '@loan/components/PageMarketList/types' +import type { PageCollateralList, TableLabel } from '@/loan/components/PageMarketList/types' import { t } from '@lingui/macro' import React from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import SelectFilterType from '@loan/components/PageMarketList/components/TableSettings/SelectFilterType' +import SelectFilterType from '@/loan/components/PageMarketList/components/TableSettings/SelectFilterType' import SearchListInput from '@ui/SearchInput/SearchListInput' const TableSettings = ({ diff --git a/apps/main/src/loan/components/PageMarketList/components/TableStats.tsx b/apps/main/src/loan/components/PageMarketList/components/TableStats.tsx index f1022edec..762db31f2 100644 --- a/apps/main/src/loan/components/PageMarketList/components/TableStats.tsx +++ b/apps/main/src/loan/components/PageMarketList/components/TableStats.tsx @@ -4,7 +4,7 @@ import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import CellMarketsTotalDebt from '@loan/components/SharedCells/TableCellMarketsTotalDebt' +import CellMarketsTotalDebt from '@/loan/components/SharedCells/TableCellMarketsTotalDebt' import ListInfoItem, { ListInfoItems } from '@ui/ListInfo' import { useUserProfileStore } from '@ui-kit/features/user-profile' diff --git a/apps/main/src/loan/components/PageMarketList/index.tsx b/apps/main/src/loan/components/PageMarketList/index.tsx index 8472f04ab..b3660ade2 100644 --- a/apps/main/src/loan/components/PageMarketList/index.tsx +++ b/apps/main/src/loan/components/PageMarketList/index.tsx @@ -1,22 +1,22 @@ -import type { PageCollateralList, TableLabel } from '@loan/components/PageMarketList/types' +import type { PageCollateralList, TableLabel } from '@/loan/components/PageMarketList/types' import React, { useCallback, useEffect, useMemo, useState } from 'react' import styled from 'styled-components' -import { REFRESH_INTERVAL, TITLE } from '@loan/constants' +import { REFRESH_INTERVAL, TITLE } from '@/loan/constants' import { breakpoints } from '@ui/utils' -import { getActiveKey } from '@loan/store/createCollateralListSlice' -import usePageVisibleInterval from '@loan/hooks/usePageVisibleInterval' -import useStore from '@loan/store/useStore' -import useTitleMapper from '@loan/hooks/useTitleMapper' +import { getActiveKey } from '@/loan/store/createCollateralListSlice' +import usePageVisibleInterval from '@/loan/hooks/usePageVisibleInterval' +import useStore from '@/loan/store/useStore' +import useTitleMapper from '@/loan/hooks/useTitleMapper' import Spinner, { SpinnerWrapper } from '@ui/Spinner' import Table, { Tbody, Tr } from '@ui/Table' -import TableHead from '@loan/components/PageMarketList/components/TableHead/TableHead' -import TableHeadMobile from '@loan/components/PageMarketList/components/TableHead/TableHeadMobile' -import TableRowNoResult from '@loan/components/PageMarketList/components/TableRow/TableRowNoResult' -import TableRowResult from '@loan/components/PageMarketList/components/TableRow/TableRowResult' -import TableSettings from '@loan/components/PageMarketList/components/TableSettings/TableSettings' +import TableHead from '@/loan/components/PageMarketList/components/TableHead/TableHead' +import TableHeadMobile from '@/loan/components/PageMarketList/components/TableHead/TableHeadMobile' +import TableRowNoResult from '@/loan/components/PageMarketList/components/TableRow/TableRowNoResult' +import TableRowResult from '@/loan/components/PageMarketList/components/TableRow/TableRowResult' +import TableSettings from '@/loan/components/PageMarketList/components/TableSettings/TableSettings' const CollateralList = (pageProps: PageCollateralList) => { const { pageLoaded, rChainId, searchParams, updatePath } = pageProps diff --git a/apps/main/src/loan/components/PageMarketList/types.ts b/apps/main/src/loan/components/PageMarketList/types.ts index 4ff47ea5d..130df672a 100644 --- a/apps/main/src/loan/components/PageMarketList/types.ts +++ b/apps/main/src/loan/components/PageMarketList/types.ts @@ -1,8 +1,8 @@ import type { Params } from 'react-router' import type { TheadSortButtonProps } from '@ui/Table/TheadSortButton' -import { SEARCH_TERM } from '@loan/hooks/useSearchTermMapper' -import { ChainId, Curve, CollateralDataCacheOrApi, LoanDetails, TitleKey, TitleMapper } from '@loan/types/loan.types' +import { SEARCH_TERM } from '@/loan/hooks/useSearchTermMapper' +import { ChainId, Curve, CollateralDataCacheOrApi, LoanDetails, TitleKey, TitleMapper } from '@/loan/types/loan.types' export type FormStatus = { error: string diff --git a/apps/main/src/loan/components/PageMarketList/utils.ts b/apps/main/src/loan/components/PageMarketList/utils.ts index b4984a8be..74b335f45 100644 --- a/apps/main/src/loan/components/PageMarketList/utils.ts +++ b/apps/main/src/loan/components/PageMarketList/utils.ts @@ -1,6 +1,6 @@ -import type { SearchParams, SearchTermsResult } from '@loan/components/PageMarketList/types' +import type { SearchParams, SearchTermsResult } from '@/loan/components/PageMarketList/types' import type { SearchTermsFuseResult } from '@ui-kit/utils' -import { CollateralData } from '@loan/types/loan.types' +import { CollateralData } from '@/loan/types/loan.types' export const DEFAULT_SEARCH_PARAMS: SearchParams = { sortBy: 'totalBorrowed', diff --git a/apps/main/src/loan/components/PagePegKeepers/Page.tsx b/apps/main/src/loan/components/PagePegKeepers/Page.tsx index 70365aaa3..623a14318 100644 --- a/apps/main/src/loan/components/PagePegKeepers/Page.tsx +++ b/apps/main/src/loan/components/PagePegKeepers/Page.tsx @@ -6,16 +6,16 @@ import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import { scrollToTop } from '@loan/utils/helpers' -import usePageOnMount from '@loan/hooks/usePageOnMount' -import useStore from '@loan/store/useStore' +import { scrollToTop } from '@/loan/utils/helpers' +import usePageOnMount from '@/loan/hooks/usePageOnMount' +import useStore from '@/loan/store/useStore' import Box from '@ui/Box' -import ConnectWallet from '@loan/components/ConnectWallet' -import DocumentHead from '@loan/layout/DocumentHead' +import ConnectWallet from '@/loan/components/ConnectWallet' +import DocumentHead from '@/loan/layout/DocumentHead' import ExternalLink from '@ui/Link/ExternalLink' -import Settings from '@loan/layout/Settings' -import PagePegKeepers from '@loan/components/PagePegKeepers' +import Settings from '@/loan/layout/Settings' +import PagePegKeepers from '@/loan/components/PagePegKeepers' const Page: NextPage = () => { const params = useParams() diff --git a/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperContent.tsx b/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperContent.tsx index 6d13ae002..57967aeed 100644 --- a/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperContent.tsx +++ b/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperContent.tsx @@ -3,15 +3,15 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { breakpoints, formatNumber, type NumberFormatOptions } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import Box from '@ui/Box' import ExternalLink from '@ui/Link/ExternalLink' import ListInfoItem, { ListInfoItems } from '@ui/ListInfo' -import PegKeeperLabel from '@loan/components/PagePegKeepers/components/PegKeeperLabel' -import PegKeeperForm from '@loan/components/PagePegKeepers/components/PegKeeperForm' +import PegKeeperLabel from '@/loan/components/PagePegKeepers/components/PegKeeperLabel' +import PegKeeperForm from '@/loan/components/PagePegKeepers/components/PegKeeperForm' import TextCaption from '@ui/TextCaption' -import { ChainId } from '@loan/types/loan.types' +import { ChainId } from '@/loan/types/loan.types' import { getAppRoot } from '@ui-kit/shared/routes' type Props = { diff --git a/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperForm.tsx b/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperForm.tsx index 8f5d7bffb..8390488e7 100644 --- a/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperForm.tsx +++ b/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperForm.tsx @@ -3,16 +3,16 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { breakpoints, formatNumber } from '@ui/utils' -import networks from '@loan/networks' -import useStore from '@loan/store/useStore' +import networks from '@/loan/networks' +import useStore from '@/loan/store/useStore' -import AlertFormError from '@loan/components/AlertFormError' +import AlertFormError from '@/loan/components/AlertFormError' import Button from '@ui/Button' import DetailInfo from '@ui/DetailInfo' import IconTooltip from '@ui/Tooltip/TooltipIcon' -import LoanFormConnect from '@loan/components/LoanFormConnect' +import LoanFormConnect from '@/loan/components/LoanFormConnect' import TxInfoBar from '@ui/TxInfoBar' -import { ChainId, Curve } from '@loan/types/loan.types' +import { ChainId, Curve } from '@/loan/types/loan.types' type Props = { rChainId: ChainId diff --git a/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperLabel.tsx b/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperLabel.tsx index 7013acd82..422952720 100644 --- a/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperLabel.tsx +++ b/apps/main/src/loan/components/PagePegKeepers/components/PegKeeperLabel.tsx @@ -2,10 +2,10 @@ import React from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import networks from '@loan/networks' +import networks from '@/loan/networks' -import TokenIcons from '@loan/components/TokenIcons' -import { ChainId } from '@loan/types/loan.types' +import TokenIcons from '@/loan/components/TokenIcons' +import { ChainId } from '@/loan/types/loan.types' type Props = { className?: string diff --git a/apps/main/src/loan/components/PagePegKeepers/index.tsx b/apps/main/src/loan/components/PagePegKeepers/index.tsx index 317fce39b..c1e8f8dbe 100644 --- a/apps/main/src/loan/components/PagePegKeepers/index.tsx +++ b/apps/main/src/loan/components/PagePegKeepers/index.tsx @@ -2,13 +2,13 @@ import React, { useEffect, useState } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils/responsive' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' -import { PEG_KEEPERS, REFRESH_INTERVAL } from '@loan/constants' +import { PEG_KEEPERS, REFRESH_INTERVAL } from '@/loan/constants' import { usePageVisibleInterval } from '@ui/hooks' -import PegKeeperContent from '@loan/components/PagePegKeepers/components/PegKeeperContent' -import { ChainId, Provider } from '@loan/types/loan.types' +import PegKeeperContent from '@/loan/components/PagePegKeepers/components/PegKeeperContent' +import { ChainId, Provider } from '@/loan/types/loan.types' const PagePegKeepers = ({ rChainId, provider }: { rChainId: ChainId; provider: Provider }) => { const isPageVisible = useStore((state) => state.isPageVisible) diff --git a/apps/main/src/loan/components/PagePegKeepers/utils.ts b/apps/main/src/loan/components/PagePegKeepers/utils.ts index b72698022..def5e4abd 100644 --- a/apps/main/src/loan/components/PagePegKeepers/utils.ts +++ b/apps/main/src/loan/components/PagePegKeepers/utils.ts @@ -1,4 +1,4 @@ -import { FormStatus } from '@loan/components/PagePegKeepers/types' +import { FormStatus } from '@/loan/components/PagePegKeepers/types' export const DEFAULT_FORM_STATUS: FormStatus = { isComplete: false, diff --git a/apps/main/src/loan/components/SharedCells/TableCellMarketsTotalDebt.tsx b/apps/main/src/loan/components/SharedCells/TableCellMarketsTotalDebt.tsx index 87ce4e70b..b295a3bbb 100644 --- a/apps/main/src/loan/components/SharedCells/TableCellMarketsTotalDebt.tsx +++ b/apps/main/src/loan/components/SharedCells/TableCellMarketsTotalDebt.tsx @@ -3,8 +3,8 @@ import { t } from '@lingui/macro' import styled from 'styled-components' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import { ROUTE } from '@loan/constants' -import useStore from '@loan/store/useStore' +import { ROUTE } from '@/loan/constants' +import useStore from '@/loan/store/useStore' import InternalLink from '@ui/Link/InternalLink' import TextCaption from '@ui/TextCaption' diff --git a/apps/main/src/loan/components/SharedCells/TableCellRate.tsx b/apps/main/src/loan/components/SharedCells/TableCellRate.tsx index 781c4a2e2..ce1e84b06 100644 --- a/apps/main/src/loan/components/SharedCells/TableCellRate.tsx +++ b/apps/main/src/loan/components/SharedCells/TableCellRate.tsx @@ -5,7 +5,7 @@ import styled from 'styled-components' import React from 'react' import { FORMAT_OPTIONS, formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import { Chip } from '@ui/Typography' import Box from '@ui/Box' diff --git a/apps/main/src/loan/components/SharedCells/TableCellTotalCollateral.tsx b/apps/main/src/loan/components/SharedCells/TableCellTotalCollateral.tsx index 85cf2d3e6..873632744 100644 --- a/apps/main/src/loan/components/SharedCells/TableCellTotalCollateral.tsx +++ b/apps/main/src/loan/components/SharedCells/TableCellTotalCollateral.tsx @@ -4,14 +4,14 @@ import isUndefined from 'lodash/isUndefined' import styled from 'styled-components' import { formatNumber, type NumberFormatOptions } from '@ui/utils' -import { getTokenName } from '@loan/utils/utilsLoan' -import useStore from '@loan/store/useStore' +import { getTokenName } from '@/loan/utils/utilsLoan' +import useStore from '@/loan/store/useStore' import { Chip } from '@ui/Typography' import Box from '@ui/Box' import TextCaption from '@ui/TextCaption' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId } from '@loan/types/loan.types' +import { ChainId } from '@/loan/types/loan.types' type Props = { rChainId: ChainId diff --git a/apps/main/src/loan/components/SharedCells/TableCellUser.tsx b/apps/main/src/loan/components/SharedCells/TableCellUser.tsx index b3e98bc10..92fd52de2 100644 --- a/apps/main/src/loan/components/SharedCells/TableCellUser.tsx +++ b/apps/main/src/loan/components/SharedCells/TableCellUser.tsx @@ -1,7 +1,7 @@ import type { ChipProps } from '@ui/Typography/types' import { formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import { Chip } from '@ui/Typography' diff --git a/apps/main/src/loan/components/SharedCells/TableCellUtilization.tsx b/apps/main/src/loan/components/SharedCells/TableCellUtilization.tsx index c18eac707..d8138dfd5 100644 --- a/apps/main/src/loan/components/SharedCells/TableCellUtilization.tsx +++ b/apps/main/src/loan/components/SharedCells/TableCellUtilization.tsx @@ -1,5 +1,5 @@ import { formatNumber } from '@ui/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' type Props = { collateralId: string diff --git a/apps/main/src/loan/components/TokenIcon.tsx b/apps/main/src/loan/components/TokenIcon.tsx index 6fe83e92e..e1738b0a8 100644 --- a/apps/main/src/loan/components/TokenIcon.tsx +++ b/apps/main/src/loan/components/TokenIcon.tsx @@ -1,5 +1,5 @@ import React from 'react' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import TokenIconComp, { type TokenIconProps } from '@ui/Token/TokenIcon' diff --git a/apps/main/src/loan/components/TokenIcons.tsx b/apps/main/src/loan/components/TokenIcons.tsx index d170271af..21f73fbd0 100644 --- a/apps/main/src/loan/components/TokenIcons.tsx +++ b/apps/main/src/loan/components/TokenIcons.tsx @@ -1,6 +1,6 @@ import React from 'react' -import TokenIcon from '@loan/components/TokenIcon' +import TokenIcon from '@/loan/components/TokenIcon' import TokensIconComp, { type TokensIconProps } from 'ui/src/Token/TokensIcon' export type Props = Omit diff --git a/apps/main/src/loan/components/TokenLabel.tsx b/apps/main/src/loan/components/TokenLabel.tsx index 6618cef62..5df276829 100644 --- a/apps/main/src/loan/components/TokenLabel.tsx +++ b/apps/main/src/loan/components/TokenLabel.tsx @@ -1,13 +1,13 @@ import React from 'react' import styled from 'styled-components' -import { getImageBaseUrl } from '@loan/utils/utilsCurvejs' -import useCollateralAlert from '@loan/hooks/useCollateralAlert' +import { getImageBaseUrl } from '@/loan/utils/utilsCurvejs' +import useCollateralAlert from '@/loan/hooks/useCollateralAlert' import AlertTooltipIcon from '@ui/Tooltip/TooltipAlert' import Box from '@ui/Box' -import TokenIcon from '@loan/components/TokenIcon' -import { ChainId, CollateralData, CollateralDataCache } from '@loan/types/loan.types' +import TokenIcon from '@/loan/components/TokenIcon' +import { ChainId, CollateralData, CollateralDataCache } from '@/loan/types/loan.types' type Props = { className?: string diff --git a/apps/main/src/loan/hooks/useCollateralAlert.tsx b/apps/main/src/loan/hooks/useCollateralAlert.tsx index c681bb9c5..3c113bef8 100644 --- a/apps/main/src/loan/hooks/useCollateralAlert.tsx +++ b/apps/main/src/loan/hooks/useCollateralAlert.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from 'react' import styled from 'styled-components' import { breakpoints } from '@ui/utils' -import { CollateralAlert } from '@loan/types/loan.types' +import { CollateralAlert } from '@/loan/types/loan.types' const useCollateralAlert = (collateralAddress: string | undefined) => useMemo(() => { diff --git a/apps/main/src/loan/hooks/useEstimateGasConversion.tsx b/apps/main/src/loan/hooks/useEstimateGasConversion.tsx index b25b75071..104b9944a 100644 --- a/apps/main/src/loan/hooks/useEstimateGasConversion.tsx +++ b/apps/main/src/loan/hooks/useEstimateGasConversion.tsx @@ -1,10 +1,10 @@ import { useMemo } from 'react' -import networks from '@loan/networks' +import networks from '@/loan/networks' import { BN, formatNumber } from '@ui/utils' import { gweiToEther, weiToGwei } from '@ui-kit/utils' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' const useEstimateGasConversion = (gas: number) => { const curve = useStore((state) => state.curve) diff --git a/apps/main/src/loan/hooks/useLayoutHeight.ts b/apps/main/src/loan/hooks/useLayoutHeight.ts index ef4a40df0..fe0e3a426 100644 --- a/apps/main/src/loan/hooks/useLayoutHeight.ts +++ b/apps/main/src/loan/hooks/useLayoutHeight.ts @@ -1,8 +1,8 @@ -import type { LayoutHeight } from '@loan/store/types' +import type { LayoutHeight } from '@/loan/store/types' import React, { useEffect } from 'react' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' function useLayoutHeight(elementRef: React.RefObject, key: keyof LayoutHeight) { const pageWidth = useStore((state) => state.layout.pageWidth) diff --git a/apps/main/src/loan/hooks/usePageOnMount.ts b/apps/main/src/loan/hooks/usePageOnMount.ts index 034c5dba7..a20d13e00 100644 --- a/apps/main/src/loan/hooks/usePageOnMount.ts +++ b/apps/main/src/loan/hooks/usePageOnMount.ts @@ -7,16 +7,16 @@ import { ethers } from 'ethers' import { useCallback, useEffect } from 'react' import { getWalletSignerAddress, useConnectWallet, useSetChain, useSetLocale } from '@ui-kit/features/connect-wallet' -import { CONNECT_STAGE, REFRESH_INTERVAL, ROUTE } from '@loan/constants' +import { CONNECT_STAGE, REFRESH_INTERVAL, ROUTE } from '@/loan/constants' import { dynamicActivate, updateAppLocale } from '@ui-kit/lib/i18n' -import { getStorageValue, setStorageValue } from '@loan/utils/storage' -import { getNetworkFromUrl, parseParams } from '@loan/utils/utilsRouter' -import { getWalletChainId } from '@loan/store/createWalletSlice' -import { initCurveJs, initLendApi } from '@loan/utils/utilsCurvejs' -import networks, { networksIdMapper } from '@loan/networks' -import useStore from '@loan/store/useStore' +import { getStorageValue, setStorageValue } from '@/loan/utils/storage' +import { getNetworkFromUrl, parseParams } from '@/loan/utils/utilsRouter' +import { getWalletChainId } from '@/loan/store/createWalletSlice' +import { initCurveJs, initLendApi } from '@/loan/utils/utilsCurvejs' +import networks, { networksIdMapper } from '@/loan/networks' +import useStore from '@/loan/store/useStore' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId, PageProps, Wallet } from '@loan/types/loan.types' +import { ChainId, PageProps, Wallet } from '@/loan/types/loan.types' function usePageOnMount(params: Params, location: Location, navigate: NavigateFunction, chainIdNotRequired?: boolean) { const [{ wallet }, connect, disconnect] = useConnectWallet() diff --git a/apps/main/src/loan/hooks/useSearchTermMapper.tsx b/apps/main/src/loan/hooks/useSearchTermMapper.tsx index 8fd03ba34..5cb0ab955 100644 --- a/apps/main/src/loan/hooks/useSearchTermMapper.tsx +++ b/apps/main/src/loan/hooks/useSearchTermMapper.tsx @@ -1,7 +1,7 @@ -import type { SearchTermKey, SearchTermMapper } from '@loan/components/PageMarketList/types' +import type { SearchTermKey, SearchTermMapper } from '@/loan/components/PageMarketList/types' import { t } from '@lingui/macro' -import { CollateralDataCacheOrApi } from '@loan/types/loan.types' +import { CollateralDataCacheOrApi } from '@/loan/types/loan.types' export enum SEARCH_TERM { 'llamma.coins' = 'llamma.coins', diff --git a/apps/main/src/loan/hooks/useTitleMapper.tsx b/apps/main/src/loan/hooks/useTitleMapper.tsx index dd52c7e5e..21460ce3e 100644 --- a/apps/main/src/loan/hooks/useTitleMapper.tsx +++ b/apps/main/src/loan/hooks/useTitleMapper.tsx @@ -3,7 +3,7 @@ import { t } from '@lingui/macro' import Box from '@ui/Box' import ExternalLink from 'ui/src/Link/ExternalLink' -import { TitleMapper } from '@loan/types/loan.types' +import { TitleMapper } from '@/loan/types/loan.types' const useTitleMapper = (): TitleMapper => ({ isInMarket: { title: '' }, diff --git a/apps/main/src/loan/hooks/useTokenAlert.tsx b/apps/main/src/loan/hooks/useTokenAlert.tsx index ff82c688d..95eb05e68 100644 --- a/apps/main/src/loan/hooks/useTokenAlert.tsx +++ b/apps/main/src/loan/hooks/useTokenAlert.tsx @@ -3,7 +3,7 @@ import React, { useMemo } from 'react' import styled from 'styled-components' import ExternalLink from '@ui/Link/ExternalLink' -import { AlertType } from '@loan/types/loan.types' +import { AlertType } from '@/loan/types/loan.types' type TokenAlert = { alertType: AlertType diff --git a/apps/main/src/loan/layout/Header.tsx b/apps/main/src/loan/layout/Header.tsx index 60548b6c8..b4d82c5fa 100644 --- a/apps/main/src/loan/layout/Header.tsx +++ b/apps/main/src/loan/layout/Header.tsx @@ -1,19 +1,19 @@ import React, { useCallback, useMemo, useRef } from 'react' import { t } from '@lingui/macro' import { useLocation, useNavigate } from 'react-router-dom' -import { CONNECT_STAGE, CRVUSD_ADDRESS } from '@loan/constants' -import { getLocaleFromUrl, getNetworkFromUrl, getRestFullPathname } from '@loan/utils/utilsRouter' +import { CONNECT_STAGE, CRVUSD_ADDRESS } from '@/loan/constants' +import { getLocaleFromUrl, getNetworkFromUrl, getRestFullPathname } from '@/loan/utils/utilsRouter' import { _parseRouteAndIsActive, formatNumber, isLoading } from '@ui/utils' import { getWalletSignerAddress, useConnectWallet } from '@ui-kit/features/connect-wallet' -import networks, { visibleNetworksList } from '@loan/networks' -import useLayoutHeight from '@loan/hooks/useLayoutHeight' -import useStore from '@loan/store/useStore' +import networks, { visibleNetworksList } from '@/loan/networks' +import useLayoutHeight from '@/loan/hooks/useLayoutHeight' +import useStore from '@/loan/store/useStore' import { Header as NewHeader, useHeaderHeight } from '@ui-kit/widgets/Header' import { NavigationSection } from '@ui-kit/widgets/Header/types' import { APP_LINK } from '@ui-kit/shared/routes' import { GlobalBannerProps } from '@ui/Banner/GlobalBanner' import { useUserProfileStore } from '@ui-kit/features/user-profile' -import { ChainId, CollateralDatasMapper, LoanDetailsMapper, UsdRate } from '@loan/types/loan.types' +import { ChainId, CollateralDatasMapper, LoanDetailsMapper, UsdRate } from '@/loan/types/loan.types' type HeaderProps = { sections: NavigationSection[]; BannerProps: GlobalBannerProps } diff --git a/apps/main/src/loan/layout/Settings.tsx b/apps/main/src/loan/layout/Settings.tsx index 6270e9b7d..b9933bc97 100644 --- a/apps/main/src/loan/layout/Settings.tsx +++ b/apps/main/src/loan/layout/Settings.tsx @@ -1,6 +1,6 @@ import styled, { keyframes } from 'styled-components' -import useStore from '@loan/store/useStore' +import useStore from '@/loan/store/useStore' import Icon from '@ui/Icon' import Button from '@ui/Button' diff --git a/apps/main/src/loan/layout/index.tsx b/apps/main/src/loan/layout/index.tsx index 4b70b5b37..fe54f20d2 100644 --- a/apps/main/src/loan/layout/index.tsx +++ b/apps/main/src/loan/layout/index.tsx @@ -1,15 +1,15 @@ import React, { useMemo, useRef, useState } from 'react' import styled from 'styled-components' -import { CONNECT_STAGE, ROUTE } from '@loan/constants' -import { layoutHeightKeys } from '@loan/store/createLayoutSlice' -import { getNetworkFromUrl } from '@loan/utils/utilsRouter' -import { getWalletChainId } from '@loan/store/createWalletSlice' +import { CONNECT_STAGE, ROUTE } from '@/loan/constants' +import { layoutHeightKeys } from '@/loan/store/createLayoutSlice' +import { getNetworkFromUrl } from '@/loan/utils/utilsRouter' +import { getWalletChainId } from '@/loan/store/createWalletSlice' import { isFailure, isLoading } from '@ui/utils' import { useConnectWallet } from '@ui-kit/features/connect-wallet' -import useLayoutHeight from '@loan/hooks/useLayoutHeight' -import useStore from '@loan/store/useStore' -import Header from '@loan/layout/Header' +import useLayoutHeight from '@/loan/hooks/useLayoutHeight' +import useStore from '@/loan/store/useStore' +import Header from '@/loan/layout/Header' import { Locale } from '@ui-kit/widgets/Header/types' import { t } from '@lingui/macro' import { Footer } from '@ui-kit/widgets/Footer' diff --git a/apps/main/src/loan/lib/apiCrvusd.ts b/apps/main/src/loan/lib/apiCrvusd.ts index 8acfb56ed..202cbba6f 100644 --- a/apps/main/src/loan/lib/apiCrvusd.ts +++ b/apps/main/src/loan/lib/apiCrvusd.ts @@ -1,11 +1,11 @@ -import type { FormValues as SwapFormValues } from '@loan/components/PageLoanManage/LoanSwap/types' -import type { LiqRange, Provider, MaxRecvLeverage } from '@loan/store/types' -import type { MaxRecvLeverage as MaxRecvLeverageForm } from '@loan/components/PageLoanCreate/types' -import type { FormDetailInfo as FormDetailInfoDeleverage } from '@loan/components/PageLoanManage/LoanDeleverage/types' +import type { FormValues as SwapFormValues } from '@/loan/components/PageLoanManage/LoanSwap/types' +import type { LiqRange, Provider, MaxRecvLeverage } from '@/loan/store/types' +import type { MaxRecvLeverage as MaxRecvLeverageForm } from '@/loan/components/PageLoanCreate/types' +import type { FormDetailInfo as FormDetailInfoDeleverage } from '@/loan/components/PageLoanManage/LoanDeleverage/types' import { BrowserProvider } from 'ethers' import PromisePool from '@supercharge/promise-pool' -import { fulfilledValue, getErrorMessage, log } from '@loan/utils/helpers' +import { fulfilledValue, getErrorMessage, log } from '@/loan/utils/helpers' import { getChartBandBalancesData, getIsUserCloseToLiquidation, @@ -13,9 +13,9 @@ import { parseUserLoss, reverseBands, sortBands, -} from '@loan/utils/utilsCurvejs' -import networks from '@loan/networks' -import { ChainId, Curve, Llamma, UserLoanDetails } from '@loan/types/loan.types' +} from '@/loan/utils/utilsCurvejs' +import networks from '@/loan/networks' +import { ChainId, Curve, Llamma, UserLoanDetails } from '@/loan/types/loan.types' export const network = { 1: { diff --git a/apps/main/src/loan/networks.ts b/apps/main/src/loan/networks.ts index 016c988cd..ba3d764ec 100644 --- a/apps/main/src/loan/networks.ts +++ b/apps/main/src/loan/networks.ts @@ -1,8 +1,8 @@ import sortBy from 'lodash/sortBy' import { getBaseNetworksConfig, NETWORK_BASE_CONFIG } from '@ui/utils' -import curvejsApi from '@loan/lib/apiCrvusd' +import curvejsApi from '@/loan/lib/apiCrvusd' import { ChainOption } from '@ui-kit/features/switch-chain' -import { ChainId, NetworkEnum, NetworkConfig } from '@loan/types/loan.types' +import { ChainId, NetworkEnum, NetworkConfig } from '@/loan/types/loan.types' const DEFAULT_NETWORK_CONFIG = { api: curvejsApi, diff --git a/apps/main/src/loan/store/createAppSlice.ts b/apps/main/src/loan/store/createAppSlice.ts index 43200fb2f..ca3acf9e3 100644 --- a/apps/main/src/loan/store/createAppSlice.ts +++ b/apps/main/src/loan/store/createAppSlice.ts @@ -1,15 +1,15 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' import type { ConnectState } from '@ui/utils' import produce from 'immer' import { ethers, Contract, ContractRunner } from 'ethers' import { Interface } from '@ethersproject/abi' -import { httpFetcher, log } from '@loan/utils/helpers' +import { httpFetcher, log } from '@/loan/utils/helpers' import isEqual from 'lodash/isEqual' -import networks from '@loan/networks' -import { Curve, LendApi, RouterProps, Wallet } from '@loan/types/loan.types' +import networks from '@/loan/networks' +import { Curve, LendApi, RouterProps, Wallet } from '@/loan/types/loan.types' export type DefaultStateKeys = keyof typeof DEFAULT_STATE export type SliceKey = keyof State | '' @@ -66,7 +66,7 @@ const createAppSlice = (set: SetState, get: GetState): AppSlice => getContract: async (jsonModuleName, contractAddress, provider) => { try { - const abi = await import(`@loan/abis/${jsonModuleName}.json`).then((module) => module.default) + const abi = await import(`@/loan/abis/${jsonModuleName}.json`).then((module) => module.default) if (!abi) throw new Error(`Unable to get abi ${jsonModuleName}`) diff --git a/apps/main/src/loan/store/createCacheSlice.ts b/apps/main/src/loan/store/createCacheSlice.ts index 6386cbab4..422e4034d 100644 --- a/apps/main/src/loan/store/createCacheSlice.ts +++ b/apps/main/src/loan/store/createCacheSlice.ts @@ -1,8 +1,8 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' -import { sleep } from '@loan/utils/helpers' -import { CollateralDataCacheMapper } from '@loan/types/loan.types' +import { sleep } from '@/loan/utils/helpers' +import { CollateralDataCacheMapper } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createChartBandsStore.tsx b/apps/main/src/loan/store/createChartBandsStore.tsx index 16621da26..7921868a0 100644 --- a/apps/main/src/loan/store/createChartBandsStore.tsx +++ b/apps/main/src/loan/store/createChartBandsStore.tsx @@ -1,6 +1,6 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import { ChainId } from '@loan/types/loan.types' +import type { State } from '@/loan/store/useStore' +import { ChainId } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createCollateralListSlice.ts b/apps/main/src/loan/store/createCollateralListSlice.ts index 7b64afb4f..14f32f0e5 100644 --- a/apps/main/src/loan/store/createCollateralListSlice.ts +++ b/apps/main/src/loan/store/createCollateralListSlice.ts @@ -1,17 +1,17 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormStatus, Order, SearchParams, SearchTermsResult } from '@loan/components/PageMarketList/types' +import type { State } from '@/loan/store/useStore' +import type { FormStatus, Order, SearchParams, SearchTermsResult } from '@/loan/components/PageMarketList/types' import chunk from 'lodash/chunk' import orderBy from 'lodash/orderBy' import uniqBy from 'lodash/uniqBy' -import { DEFAULT_SEARCH_PARAMS, parseSearchTermResults } from '@loan/components/PageMarketList/utils' -import { SEARCH_TERM } from '@loan/hooks/useSearchTermMapper' -import { TITLE } from '@loan/constants' +import { DEFAULT_SEARCH_PARAMS, parseSearchTermResults } from '@/loan/components/PageMarketList/utils' +import { SEARCH_TERM } from '@/loan/hooks/useSearchTermMapper' +import { TITLE } from '@/loan/constants' import { searchByText } from '@ui-kit/utils' -import { sleep } from '@loan/utils/helpers' -import { ChainId, Curve, CollateralData, TitleKey } from '@loan/types/loan.types' +import { sleep } from '@/loan/utils/helpers' +import { ChainId, Curve, CollateralData, TitleKey } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createCollateralsSlice.ts b/apps/main/src/loan/store/createCollateralsSlice.ts index 8baf5aa52..0c3ed519c 100644 --- a/apps/main/src/loan/store/createCollateralsSlice.ts +++ b/apps/main/src/loan/store/createCollateralsSlice.ts @@ -1,10 +1,10 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' import cloneDeep from 'lodash/cloneDeep' import pick from 'lodash/pick' -import networks from '@loan/networks' +import networks from '@/loan/networks' import { ChainId, Curve, @@ -13,7 +13,7 @@ import { CollateralDatasMapper, CollateralDataCache, CollateralDataCacheMapper, -} from '@loan/types/loan.types' +} from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createGasSlice.ts b/apps/main/src/loan/store/createGasSlice.ts index 8e2c2aed2..16b3aaf86 100644 --- a/apps/main/src/loan/store/createGasSlice.ts +++ b/apps/main/src/loan/store/createGasSlice.ts @@ -1,16 +1,16 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { GasInfo } from '@loan/store/types' +import type { State } from '@/loan/store/useStore' +import type { GasInfo } from '@/loan/store/types' import { JsonRpcProvider } from 'ethers' import cloneDeep from 'lodash/cloneDeep' import { gweiToWai } from '@ui-kit/utils' import { getEthereumCustomFeeDataValues } from '@ui/utils/utilsGas' -import { httpFetcher } from '@loan/utils/helpers' +import { httpFetcher } from '@/loan/utils/helpers' import { log } from '@ui-kit/lib/logging' -import networks from '@loan/networks' -import { ChainId, Curve } from '@loan/types/loan.types' +import networks from '@/loan/networks' +import { ChainId, Curve } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createIntegrationsSlice.ts b/apps/main/src/loan/store/createIntegrationsSlice.ts index e7e627da9..f6e40937d 100644 --- a/apps/main/src/loan/store/createIntegrationsSlice.ts +++ b/apps/main/src/loan/store/createIntegrationsSlice.ts @@ -1,6 +1,6 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FilterKey, FormStatus, FormValues } from '@loan/components/PageIntegrations/types' +import type { State } from '@/loan/store/useStore' +import type { FilterKey, FormStatus, FormValues } from '@/loan/components/PageIntegrations/types' import type { IntegrationApp, IntegrationsTags } from '@ui/Integration/types' import Fuse from 'fuse.js' @@ -8,9 +8,9 @@ import cloneDeep from 'lodash/cloneDeep' import produce from 'immer' import sortBy from 'lodash/sortBy' -import { fulfilledValue, httpFetcher } from '@loan/utils/helpers' -import networks from '@loan/networks' -import { ChainId } from '@loan/types/loan.types' +import { fulfilledValue, httpFetcher } from '@/loan/utils/helpers' +import networks from '@/loan/networks' +import { ChainId } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLayoutSlice.ts b/apps/main/src/loan/store/createLayoutSlice.ts index f30b678b8..e84dd6c7d 100644 --- a/apps/main/src/loan/store/createLayoutSlice.ts +++ b/apps/main/src/loan/store/createLayoutSlice.ts @@ -1,10 +1,10 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { LayoutHeight } from '@loan/store/types' +import type { State } from '@/loan/store/useStore' +import type { LayoutHeight } from '@/loan/store/types' import produce from 'immer' import cloneDeep from 'lodash/cloneDeep' -import { PageWidthClassName } from '@loan/types/loan.types' +import { PageWidthClassName } from '@/loan/types/loan.types' export type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoanCollateralDecreaseSlice.ts b/apps/main/src/loan/store/createLoanCollateralDecreaseSlice.ts index 24f03816b..711919539 100644 --- a/apps/main/src/loan/store/createLoanCollateralDecreaseSlice.ts +++ b/apps/main/src/loan/store/createLoanCollateralDecreaseSlice.ts @@ -1,7 +1,7 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormDetailInfo, FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@loan/components/PageLoanManage/CollateralDecrease/types' +import type { State } from '@/loan/store/useStore' +import type { FormDetailInfo, FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/loan/components/PageLoanManage/CollateralDecrease/types' import cloneDeep from 'lodash/cloneDeep' @@ -9,11 +9,11 @@ import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS, -} from '@loan/components/PageLoanManage/utils' -import { getTokenName } from '@loan/utils/utilsLoan' -import { loadingLRPrices } from '@loan/utils/utilsCurvejs' -import networks from '@loan/networks' -import { ChainId, Curve, Llamma } from '@loan/types/loan.types' +} from '@/loan/components/PageLoanManage/utils' +import { getTokenName } from '@/loan/utils/utilsLoan' +import { loadingLRPrices } from '@/loan/utils/utilsCurvejs' +import networks from '@/loan/networks' +import { ChainId, Curve, Llamma } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoanCollateralIncreaseSlice.ts b/apps/main/src/loan/store/createLoanCollateralIncreaseSlice.ts index c9e8e1854..d6734d7e0 100644 --- a/apps/main/src/loan/store/createLoanCollateralIncreaseSlice.ts +++ b/apps/main/src/loan/store/createLoanCollateralIncreaseSlice.ts @@ -1,17 +1,17 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormStatus, FormValues } from '@loan/components/PageLoanManage/CollateralIncrease/types' -import type { FormDetailInfo, FormEstGas } from '@loan/components/PageLoanManage/types' +import type { State } from '@/loan/store/useStore' +import type { FormStatus, FormValues } from '@/loan/components/PageLoanManage/CollateralIncrease/types' +import type { FormDetailInfo, FormEstGas } from '@/loan/components/PageLoanManage/types' import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS, -} from '@loan/components/PageLoanManage/utils' -import { loadingLRPrices } from '@loan/utils/utilsCurvejs' -import networks from '@loan/networks' +} from '@/loan/components/PageLoanManage/utils' +import { loadingLRPrices } from '@/loan/utils/utilsCurvejs' +import networks from '@/loan/networks' import cloneDeep from 'lodash/cloneDeep' -import { ChainId, Curve, Llamma } from '@loan/types/loan.types' +import { ChainId, Curve, Llamma } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoanCreateSlice.ts b/apps/main/src/loan/store/createLoanCreateSlice.ts index f1dd53e1e..4e4460024 100644 --- a/apps/main/src/loan/store/createLoanCreateSlice.ts +++ b/apps/main/src/loan/store/createLoanCreateSlice.ts @@ -1,9 +1,9 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormDetailInfo, FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormDetailInfoLeverage, FormStatus, FormValues } from '@loan/components/PageLoanCreate/types' -import type { LiqRange, LiqRangesMapper } from '@loan/store/types' -import type { MaxRecvLeverage } from '@loan/components/PageLoanCreate/types' +import type { State } from '@/loan/store/useStore' +import type { FormDetailInfo, FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormDetailInfoLeverage, FormStatus, FormValues } from '@/loan/components/PageLoanCreate/types' +import type { LiqRange, LiqRangesMapper } from '@/loan/store/types' +import type { MaxRecvLeverage } from '@/loan/components/PageLoanCreate/types' import cloneDeep from 'lodash/cloneDeep' @@ -11,11 +11,11 @@ import { DEFAULT_DETAIL_INFO_LEVERAGE, DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, -} from '@loan/components/PageLoanCreate/utils' -import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS } from '@loan/components/PageLoanManage/utils' -import { loadingLRPrices } from '@loan/utils/utilsCurvejs' -import networks from '@loan/networks' -import { ChainId, Curve, Llamma } from '@loan/types/loan.types' +} from '@/loan/components/PageLoanCreate/utils' +import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS } from '@/loan/components/PageLoanManage/utils' +import { loadingLRPrices } from '@/loan/utils/utilsCurvejs' +import networks from '@/loan/networks' +import { ChainId, Curve, Llamma } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoanDecreaseSlice.ts b/apps/main/src/loan/store/createLoanDecreaseSlice.ts index 6c654232a..5fe49b219 100644 --- a/apps/main/src/loan/store/createLoanDecreaseSlice.ts +++ b/apps/main/src/loan/store/createLoanDecreaseSlice.ts @@ -1,7 +1,7 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormDetailInfo, FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@loan/components/PageLoanManage/LoanDecrease/types' +import type { State } from '@/loan/store/useStore' +import type { FormDetailInfo, FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/loan/components/PageLoanManage/LoanDecrease/types' import cloneDeep from 'lodash/cloneDeep' @@ -9,10 +9,10 @@ import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS, -} from '@loan/components/PageLoanManage/utils' -import { loadingLRPrices } from '@loan/utils/utilsCurvejs' -import networks from '@loan/networks' -import { ChainId, Curve, Llamma } from '@loan/types/loan.types' +} from '@/loan/components/PageLoanManage/utils' +import { loadingLRPrices } from '@/loan/utils/utilsCurvejs' +import networks from '@/loan/networks' +import { ChainId, Curve, Llamma } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoanDeleverageSlice.ts b/apps/main/src/loan/store/createLoanDeleverageSlice.ts index 6639475ec..203ce2a90 100644 --- a/apps/main/src/loan/store/createLoanDeleverageSlice.ts +++ b/apps/main/src/loan/store/createLoanDeleverageSlice.ts @@ -1,7 +1,7 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormDetailInfo, FormStatus, FormValues } from '@loan/components/PageLoanManage/LoanDeleverage/types' +import type { State } from '@/loan/store/useStore' +import type { FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormDetailInfo, FormStatus, FormValues } from '@/loan/components/PageLoanManage/LoanDeleverage/types' import cloneDeep from 'lodash/cloneDeep' @@ -9,10 +9,10 @@ import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_STATUS, DEFAULT_FORM_VALUES, -} from '@loan/components/PageLoanManage/LoanDeleverage/utils' -import { DEFAULT_FORM_EST_GAS } from '@loan/components/PageLoanManage/utils' -import networks from '@loan/networks' -import { ChainId, Curve, Llamma, UserLoanDetails } from '@loan/types/loan.types' +} from '@/loan/components/PageLoanManage/LoanDeleverage/utils' +import { DEFAULT_FORM_EST_GAS } from '@/loan/components/PageLoanManage/utils' +import networks from '@/loan/networks' +import { ChainId, Curve, Llamma, UserLoanDetails } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoanIncreaseSlice.ts b/apps/main/src/loan/store/createLoanIncreaseSlice.ts index c3e36f9aa..7167bbe09 100644 --- a/apps/main/src/loan/store/createLoanIncreaseSlice.ts +++ b/apps/main/src/loan/store/createLoanIncreaseSlice.ts @@ -1,7 +1,7 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormDetailInfo, FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormStatus, FormValues } from '@loan/components/PageLoanManage/LoanIncrease/types' +import type { State } from '@/loan/store/useStore' +import type { FormDetailInfo, FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormStatus, FormValues } from '@/loan/components/PageLoanManage/LoanIncrease/types' import cloneDeep from 'lodash/cloneDeep' @@ -9,10 +9,10 @@ import { DEFAULT_DETAIL_INFO, DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS, -} from '@loan/components/PageLoanManage/utils' -import { loadingLRPrices } from '@loan/utils/utilsCurvejs' -import networks from '@loan/networks' -import { ChainId, Curve, Llamma } from '@loan/types/loan.types' +} from '@/loan/components/PageLoanManage/utils' +import { loadingLRPrices } from '@/loan/utils/utilsCurvejs' +import networks from '@/loan/networks' +import { ChainId, Curve, Llamma } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoanLiquidate.ts b/apps/main/src/loan/store/createLoanLiquidate.ts index 259af18b3..81748e671 100644 --- a/apps/main/src/loan/store/createLoanLiquidate.ts +++ b/apps/main/src/loan/store/createLoanLiquidate.ts @@ -1,13 +1,13 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormStatus } from '@loan/components/PageLoanManage/LoanLiquidate/types' +import type { State } from '@/loan/store/useStore' +import type { FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormStatus } from '@/loan/components/PageLoanManage/LoanLiquidate/types' import cloneDeep from 'lodash/cloneDeep' -import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@loan/components/PageLoanManage/utils' -import networks from '@loan/networks' -import { ChainId, Curve, Llamma, UserWalletBalances } from '@loan/types/loan.types' +import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@/loan/components/PageLoanManage/utils' +import networks from '@/loan/networks' +import { ChainId, Curve, Llamma, UserWalletBalances } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoanSwap.ts b/apps/main/src/loan/store/createLoanSwap.ts index aeee430af..0fdb768a9 100644 --- a/apps/main/src/loan/store/createLoanSwap.ts +++ b/apps/main/src/loan/store/createLoanSwap.ts @@ -1,12 +1,12 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { FormEstGas } from '@loan/components/PageLoanManage/types' -import type { FormDetailInfo, FormStatus, FormValues } from '@loan/components/PageLoanManage/LoanSwap/types' +import type { State } from '@/loan/store/useStore' +import type { FormEstGas } from '@/loan/components/PageLoanManage/types' +import type { FormDetailInfo, FormStatus, FormValues } from '@/loan/components/PageLoanManage/LoanSwap/types' -import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@loan/components/PageLoanManage/utils' -import networks from '@loan/networks' +import { DEFAULT_FORM_EST_GAS, DEFAULT_FORM_STATUS as FORM_STATUS } from '@/loan/components/PageLoanManage/utils' +import networks from '@/loan/networks' import cloneDeep from 'lodash/cloneDeep' -import { ChainId, Curve, Llamma } from '@loan/types/loan.types' +import { ChainId, Curve, Llamma } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createLoansSlice.ts b/apps/main/src/loan/store/createLoansSlice.ts index 36415992a..af32a3612 100644 --- a/apps/main/src/loan/store/createLoansSlice.ts +++ b/apps/main/src/loan/store/createLoansSlice.ts @@ -1,11 +1,11 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' import { PromisePool } from '@supercharge/promise-pool' import cloneDeep from 'lodash/cloneDeep' import { log } from '@ui-kit/lib/logging' -import networks from '@loan/networks' +import networks from '@/loan/networks' import { CollateralData, Curve, @@ -15,7 +15,7 @@ import { LoanPriceInfo, UserLoanDetails, UserWalletBalances, -} from '@loan/types/loan.types' +} from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createOhlcChartSlice.ts b/apps/main/src/loan/store/createOhlcChartSlice.ts index 0f506eed7..078a9ecc9 100644 --- a/apps/main/src/loan/store/createOhlcChartSlice.ts +++ b/apps/main/src/loan/store/createOhlcChartSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' import type { TimeOptions, FetchingStatus, @@ -17,9 +17,9 @@ import type { UTCTimestamp } from 'lightweight-charts' import produce from 'immer' -import networks from '@loan/networks' +import networks from '@/loan/networks' import { convertToLocaleTimestamp } from '@ui/Chart/utils' -import { ChainId } from '@loan/types/loan.types' +import { ChainId } from '@/loan/types/loan.types' type SliceState = { chartOhlcData: LpPriceOhlcDataFormatted[] diff --git a/apps/main/src/loan/store/createPegKeepersSlice.ts b/apps/main/src/loan/store/createPegKeepersSlice.ts index a5aa23f22..adca13f56 100644 --- a/apps/main/src/loan/store/createPegKeepersSlice.ts +++ b/apps/main/src/loan/store/createPegKeepersSlice.ts @@ -1,14 +1,14 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' -import type { DetailsMapper, FormStatus } from '@loan/components/PagePegKeepers/types' +import type { State } from '@/loan/store/useStore' +import type { DetailsMapper, FormStatus } from '@/loan/components/PagePegKeepers/types' import PromisePool from '@supercharge/promise-pool' import { ethers } from 'ethers' -import crvusdjsApi from '@loan/lib/apiCrvusd' +import crvusdjsApi from '@/loan/lib/apiCrvusd' -import { DEFAULT_FORM_STATUS } from '@loan/components/PagePegKeepers/utils' -import { PEG_KEEPERS_ADDRESSES } from '@loan/constants' -import { Curve, Provider } from '@loan/types/loan.types' +import { DEFAULT_FORM_STATUS } from '@/loan/components/PagePegKeepers/utils' +import { PEG_KEEPERS_ADDRESSES } from '@/loan/constants' +import { Curve, Provider } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createScrvUsdSlice.ts b/apps/main/src/loan/store/createScrvUsdSlice.ts index 18501fadd..b384841fc 100644 --- a/apps/main/src/loan/store/createScrvUsdSlice.ts +++ b/apps/main/src/loan/store/createScrvUsdSlice.ts @@ -1,14 +1,14 @@ -import type { DepositWithdrawModule } from '@loan/components/PageCrvUsdStaking/types' -import type { PricesYieldData, PricesYieldDataResponse, Provider } from '@loan/store/types' +import type { DepositWithdrawModule } from '@/loan/components/PageCrvUsdStaking/types' +import type { PricesYieldData, PricesYieldDataResponse, Provider } from '@/loan/store/types' import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' import BigNumber from 'bignumber.js' import { t } from '@lingui/macro' -import { SCRVUSD_GAS_ESTIMATE } from '@loan/constants' -import networks from '@loan/networks' +import { SCRVUSD_GAS_ESTIMATE } from '@/loan/constants' +import networks from '@/loan/networks' import { Contract } from 'ethers' import cloneDeep from 'lodash/cloneDeep' -import { FetchStatus, TransactionStatus } from '@loan/types/loan.types' +import { FetchStatus, TransactionStatus } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createTokensSlice.ts b/apps/main/src/loan/store/createTokensSlice.ts index 01a642547..ad0a4cdf1 100644 --- a/apps/main/src/loan/store/createTokensSlice.ts +++ b/apps/main/src/loan/store/createTokensSlice.ts @@ -1,5 +1,5 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' import cloneDeep from 'lodash/cloneDeep' diff --git a/apps/main/src/loan/store/createUsdRatesSlice.ts b/apps/main/src/loan/store/createUsdRatesSlice.ts index 30ecc7b8e..ed9beee89 100644 --- a/apps/main/src/loan/store/createUsdRatesSlice.ts +++ b/apps/main/src/loan/store/createUsdRatesSlice.ts @@ -1,13 +1,13 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' import { PromisePool } from '@supercharge/promise-pool' import cloneDeep from 'lodash/cloneDeep' -import { CRVUSD_ADDRESS } from '@loan/constants' +import { CRVUSD_ADDRESS } from '@/loan/constants' import { log } from '@ui-kit/lib/logging' -import networks from '@loan/networks' -import { Curve, UsdRate } from '@loan/types/loan.types' +import networks from '@/loan/networks' +import { Curve, UsdRate } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/createWalletSlice.ts b/apps/main/src/loan/store/createWalletSlice.ts index 948172029..e8ce02e88 100644 --- a/apps/main/src/loan/store/createWalletSlice.ts +++ b/apps/main/src/loan/store/createWalletSlice.ts @@ -1,11 +1,11 @@ import type { GetState, SetState } from 'zustand' -import type { State } from '@loan/store/useStore' +import type { State } from '@/loan/store/useStore' import type { CustomNotification, NotificationType } from '@web3-onboard/core/dist/types' -import type { Provider } from '@loan/store/types' +import type { Provider } from '@/loan/store/types' import type { OnboardAPI, UpdateNotification } from '@web3-onboard/core' import cloneDeep from 'lodash/cloneDeep' import { BrowserProvider } from 'ethers' -import { Wallet } from '@loan/types/loan.types' +import { Wallet } from '@/loan/types/loan.types' type StateKey = keyof typeof DEFAULT_STATE diff --git a/apps/main/src/loan/store/useStore.ts b/apps/main/src/loan/store/useStore.ts index c628877cf..4152a5262 100644 --- a/apps/main/src/loan/store/useStore.ts +++ b/apps/main/src/loan/store/useStore.ts @@ -4,33 +4,33 @@ import { create } from 'zustand' import { devtools, persist } from 'zustand/middleware' import merge from 'lodash/merge' -import createCacheSlice, { CacheSlice } from '@loan/store/createCacheSlice' -import createAppSlice, { AppSlice } from '@loan/store/createAppSlice' -import createLayoutSlice, { AppLayoutSlice } from '@loan/store/createLayoutSlice' -import createWalletSlice, { WalletSlice } from '@loan/store/createWalletSlice' -import createGasSlice, { GasSlice } from '@loan/store/createGasSlice' -import createUsdRatesSlice, { UsdRatesSlice } from '@loan/store/createUsdRatesSlice' -import createTokensSlice, { TokensSlice } from '@loan/store/createTokensSlice' -import createCollateralsSlice, { CollateralsSlice } from '@loan/store/createCollateralsSlice' -import createLoansSlice, { LoansSlice } from '@loan/store/createLoansSlice' -import createCollateralListSlice, { CollateralListSlice } from '@loan/store/createCollateralListSlice' -import createLoanCreate, { LoanCreateSlice } from '@loan/store/createLoanCreateSlice' +import createCacheSlice, { CacheSlice } from '@/loan/store/createCacheSlice' +import createAppSlice, { AppSlice } from '@/loan/store/createAppSlice' +import createLayoutSlice, { AppLayoutSlice } from '@/loan/store/createLayoutSlice' +import createWalletSlice, { WalletSlice } from '@/loan/store/createWalletSlice' +import createGasSlice, { GasSlice } from '@/loan/store/createGasSlice' +import createUsdRatesSlice, { UsdRatesSlice } from '@/loan/store/createUsdRatesSlice' +import createTokensSlice, { TokensSlice } from '@/loan/store/createTokensSlice' +import createCollateralsSlice, { CollateralsSlice } from '@/loan/store/createCollateralsSlice' +import createLoansSlice, { LoansSlice } from '@/loan/store/createLoansSlice' +import createCollateralListSlice, { CollateralListSlice } from '@/loan/store/createCollateralListSlice' +import createLoanCreate, { LoanCreateSlice } from '@/loan/store/createLoanCreateSlice' import createLoanCollateralDecrease, { LoanCollateralDecreaseSlice, -} from '@loan/store/createLoanCollateralDecreaseSlice' +} from '@/loan/store/createLoanCollateralDecreaseSlice' import createLoanCollateralIncrease, { LoanCollateralIncreaseSlice, -} from '@loan/store/createLoanCollateralIncreaseSlice' -import createLoanDecrease, { LoanDecreaseSlice } from '@loan/store/createLoanDecreaseSlice' -import createLoanIncrease, { LoanIncreaseSlice } from '@loan/store/createLoanIncreaseSlice' -import createLoanSwap, { LoanSwapSlice } from '@loan/store/createLoanSwap' -import createLoanLiquidate, { LoanLiquidateSlice } from '@loan/store/createLoanLiquidate' -import createChartBandsSlice, { ChartBandsSlice } from '@loan/store/createChartBandsStore' -import createIntegrationsSlice, { IntegrationsSlice } from '@loan/store/createIntegrationsSlice' -import createLoanDeleverageSlice, { LoanDeleverageSlice } from '@loan/store/createLoanDeleverageSlice' -import createOhlcChartSlice, { OhlcChartSlice } from '@loan/store/createOhlcChartSlice' -import createPegKeepersSlice, { PegKeepersSlice } from '@loan/store/createPegKeepersSlice' -import createScrvUsdSlice, { ScrvUsdSlice } from '@loan/store/createScrvUsdSlice' +} from '@/loan/store/createLoanCollateralIncreaseSlice' +import createLoanDecrease, { LoanDecreaseSlice } from '@/loan/store/createLoanDecreaseSlice' +import createLoanIncrease, { LoanIncreaseSlice } from '@/loan/store/createLoanIncreaseSlice' +import createLoanSwap, { LoanSwapSlice } from '@/loan/store/createLoanSwap' +import createLoanLiquidate, { LoanLiquidateSlice } from '@/loan/store/createLoanLiquidate' +import createChartBandsSlice, { ChartBandsSlice } from '@/loan/store/createChartBandsStore' +import createIntegrationsSlice, { IntegrationsSlice } from '@/loan/store/createIntegrationsSlice' +import createLoanDeleverageSlice, { LoanDeleverageSlice } from '@/loan/store/createLoanDeleverageSlice' +import createOhlcChartSlice, { OhlcChartSlice } from '@/loan/store/createOhlcChartSlice' +import createPegKeepersSlice, { PegKeepersSlice } from '@/loan/store/createPegKeepersSlice' +import createScrvUsdSlice, { ScrvUsdSlice } from '@/loan/store/createScrvUsdSlice' import type { PersistOptions } from 'zustand/middleware/persist' export type State = CacheSlice & diff --git a/apps/main/src/loan/types/loan.types.ts b/apps/main/src/loan/types/loan.types.ts index 71853c075..424875dbb 100644 --- a/apps/main/src/loan/types/loan.types.ts +++ b/apps/main/src/loan/types/loan.types.ts @@ -9,8 +9,8 @@ import type { WalletState } from '@web3-onboard/core' import type stablecoinApi from '@curvefi/stablecoin-api' import type lendingApi from '@curvefi/lending-api' import type { BaseConfig } from '@ui/utils' -import curvejsApi from '@loan/lib/apiCrvusd' -import { TITLE } from '@loan/constants' +import curvejsApi from '@/loan/lib/apiCrvusd' +import { TITLE } from '@/loan/constants' export type AlertType = 'info' | 'warning' | 'error' | 'danger' export type ChainId = 1 diff --git a/apps/main/src/loan/utils/helpers.ts b/apps/main/src/loan/utils/helpers.ts index c4f236350..2bce24e7d 100644 --- a/apps/main/src/loan/utils/helpers.ts +++ b/apps/main/src/loan/utils/helpers.ts @@ -1,7 +1,7 @@ import { t } from '@lingui/macro' -import networks from '@loan/networks' -import { Curve } from '@loan/types/loan.types' +import networks from '@/loan/networks' +import { Curve } from '@/loan/types/loan.types' interface CustomError extends Error { data?: { message: string } diff --git a/apps/main/src/loan/utils/storage.ts b/apps/main/src/loan/utils/storage.ts index 74ca68162..9d0e3de14 100644 --- a/apps/main/src/loan/utils/storage.ts +++ b/apps/main/src/loan/utils/storage.ts @@ -1,6 +1,6 @@ import merge from 'lodash/merge' import dayjs from '@ui-kit/lib/dayjs' -import { Theme } from '@loan/types/loan.types' +import { Theme } from '@/loan/types/loan.types' export const APP_STORAGE = { APP_CACHE: 'crvusd-app-cache', diff --git a/apps/main/src/loan/utils/utilsCurvejs.ts b/apps/main/src/loan/utils/utilsCurvejs.ts index baa8f4b5d..da7536d68 100644 --- a/apps/main/src/loan/utils/utilsCurvejs.ts +++ b/apps/main/src/loan/utils/utilsCurvejs.ts @@ -3,7 +3,7 @@ import sortBy from 'lodash/sortBy' import PromisePool from '@supercharge/promise-pool' import { BN } from '@ui/utils' -import networks from '@loan/networks' +import networks from '@/loan/networks' import { BandBalance, ChainId, @@ -13,7 +13,7 @@ import { Llamma, UserLoanDetails, Wallet, -} from '@loan/types/loan.types' +} from '@/loan/types/loan.types' export async function initCurveJs(chainId: ChainId, wallet: Wallet): Promise { const { networkId } = networks[chainId] diff --git a/apps/main/src/loan/utils/utilsGasPrices.ts b/apps/main/src/loan/utils/utilsGasPrices.ts index f529a1003..b25272867 100644 --- a/apps/main/src/loan/utils/utilsGasPrices.ts +++ b/apps/main/src/loan/utils/utilsGasPrices.ts @@ -1,6 +1,6 @@ -import { httpFetcher } from '@loan/utils/helpers' -import networks from '@loan/networks' -import { ChainId } from '@loan/types/loan.types' +import { httpFetcher } from '@/loan/utils/helpers' +import networks from '@/loan/networks' +import { ChainId } from '@/loan/types/loan.types' export type GasPrices = { eip1559Gas: { diff --git a/apps/main/src/loan/utils/utilsLoan.ts b/apps/main/src/loan/utils/utilsLoan.ts index f610ecb01..bae93f706 100644 --- a/apps/main/src/loan/utils/utilsLoan.ts +++ b/apps/main/src/loan/utils/utilsLoan.ts @@ -1,7 +1,7 @@ import type { StepStatus } from '@ui/Stepper/types' import { formatNumber } from '@ui/utils' -import { Llamma } from '@loan/types/loan.types' +import { Llamma } from '@/loan/types/loan.types' export function getStepStatus(isComplete: boolean, isInProgress: boolean, isValid: boolean): StepStatus { return isComplete ? 'succeeded' : isInProgress ? 'in-progress' : isValid ? 'current' : 'pending' diff --git a/apps/main/src/loan/utils/utilsRouter.ts b/apps/main/src/loan/utils/utilsRouter.ts index c84323c01..df8218be9 100644 --- a/apps/main/src/loan/utils/utilsRouter.ts +++ b/apps/main/src/loan/utils/utilsRouter.ts @@ -1,12 +1,12 @@ import type { Params } from 'react-router' -import type { FormType as ManageFormType } from '@loan/components/PageLoanManage/types' +import type { FormType as ManageFormType } from '@/loan/components/PageLoanManage/types' import type { Locale } from '@ui-kit/lib/i18n' import { DEFAULT_LOCALES, parseLocale } from '@ui-kit/lib/i18n' -import { ROUTE } from '@loan/constants' -import networks, { networksIdMapper } from '@loan/networks' +import { ROUTE } from '@/loan/constants' +import networks, { networksIdMapper } from '@/loan/networks' import { CRVUSD_ROUTES } from '@ui-kit/shared/routes' -import { NetworkEnum, RouterParams } from '@loan/types/loan.types' +import { NetworkEnum, RouterParams } from '@/loan/types/loan.types' export function getPath({ locale = 'en', network = 'ethereum' }: Params, rerouteRoute: string) { const { parsedLocale } = parseLocale(locale) diff --git a/apps/main/tsconfig.json b/apps/main/tsconfig.json index a554923c8..75298e38b 100644 --- a/apps/main/tsconfig.json +++ b/apps/main/tsconfig.json @@ -4,10 +4,6 @@ "baseUrl": "./src", "paths": { "@/*": ["*"], - "@main/*": ["dex/*"], - "@loan/*": ["loan/*"], - "@lend/*": ["lend/*"], - "@dao/*": ["dao/*"], "@ui": ["../../../packages/ui/src/index.ts"], "@ui/*": ["../../../packages/ui/src/*"], "@ui-kit/*": ["../../../packages/curve-ui-kit/src/*"], From 0742bca4c119e55befa2e10f6e02d4cf38fa557c Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Mon, 27 Jan 2025 17:30:35 +0100 Subject: [PATCH 5/5] chore: forbid cross-app imports --- packages/eslint-config-custom/index.js | 12 ++++- packages/eslint-config-custom/package.json | 1 + yarn.lock | 62 +++++++++++++++++++++- 3 files changed, 72 insertions(+), 3 deletions(-) diff --git a/packages/eslint-config-custom/index.js b/packages/eslint-config-custom/index.js index ca868dd78..166facabc 100644 --- a/packages/eslint-config-custom/index.js +++ b/packages/eslint-config-custom/index.js @@ -1,12 +1,22 @@ module.exports = { extends: ['next', 'turbo', 'prettier'], - plugins: ['no-only-tests', 'unused-imports'], + plugins: ['no-only-tests', 'unused-imports', 'import'], rules: { 'arrow-body-style': ['error', 'as-needed'], 'no-only-tests/no-only-tests': 'error', '@next/next/no-img-element': 'off', '@next/next/no-html-link-for-pages': 'off', 'unused-imports/no-unused-imports': 'warn', + 'import/no-restricted-paths': [ + 'error', + { + basePath: '../../apps/main/src', + zones: ['dex', 'dao', 'lend', 'loan'].map((from, _, targets) => ({ + from, + target: targets.filter((a) => a !== from), + })), + }, + ], }, parser: '@typescript-eslint/parser', settings: { diff --git a/packages/eslint-config-custom/package.json b/packages/eslint-config-custom/package.json index 16ee59e14..2ccd3d445 100644 --- a/packages/eslint-config-custom/package.json +++ b/packages/eslint-config-custom/package.json @@ -13,6 +13,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-config-turbo": "^2.1.2", "eslint-import-resolver-typescript": "^3.6.3", + "eslint-plugin-import": "^2.31.0", "eslint-plugin-no-only-tests": "^3.3.0", "eslint-plugin-react": "7.36.1", "eslint-plugin-unused-imports": "^3.2.0", diff --git a/yarn.lock b/yarn.lock index b88db35d0..9f38b594f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8599,6 +8599,13 @@ __metadata: languageName: node linkType: hard +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 10c0/b5bcfb0d87f7d1c1c7c0f7693f53b07866ed9fec4c34a97a8c948fb9a7c0082e416ce4d3b60beb4f5e167cbe04cdeefbf6771320f3ede059b9ce91188c409a5b + languageName: node + linkType: hard + "@rushstack/eslint-patch@npm:^1.3.3": version: 1.10.3 resolution: "@rushstack/eslint-patch@npm:1.10.3" @@ -12837,7 +12844,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.3": +"array.prototype.findlastindex@npm:^1.2.3, array.prototype.findlastindex@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlastindex@npm:1.2.5" dependencies: @@ -16766,6 +16773,7 @@ __metadata: eslint-config-prettier: "npm:^9.1.0" eslint-config-turbo: "npm:^2.1.2" eslint-import-resolver-typescript: "npm:^3.6.3" + eslint-plugin-import: "npm:^2.31.0" eslint-plugin-no-only-tests: "npm:^3.3.0" eslint-plugin-react: "npm:7.36.1" eslint-plugin-unused-imports: "npm:^3.2.0" @@ -16887,6 +16895,18 @@ __metadata: languageName: node linkType: hard +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" + dependencies: + debug: "npm:^3.2.7" + peerDependenciesMeta: + eslint: + optional: true + checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558 + languageName: node + linkType: hard + "eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0": version: 2.8.1 resolution: "eslint-module-utils@npm:2.8.1" @@ -16938,6 +16958,35 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-import@npm:^2.31.0": + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" + dependencies: + "@rtsao/scc": "npm:^1.1.0" + array-includes: "npm:^3.1.8" + array.prototype.findlastindex: "npm:^1.2.5" + array.prototype.flat: "npm:^1.3.2" + array.prototype.flatmap: "npm:^1.3.2" + debug: "npm:^3.2.7" + doctrine: "npm:^2.1.0" + eslint-import-resolver-node: "npm:^0.3.9" + eslint-module-utils: "npm:^2.12.0" + hasown: "npm:^2.0.2" + is-core-module: "npm:^2.15.1" + is-glob: "npm:^4.0.3" + minimatch: "npm:^3.1.2" + object.fromentries: "npm:^2.0.8" + object.groupby: "npm:^1.0.3" + object.values: "npm:^1.2.0" + semver: "npm:^6.3.1" + string.prototype.trimend: "npm:^1.0.8" + tsconfig-paths: "npm:^3.15.0" + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a + languageName: node + linkType: hard + "eslint-plugin-jsx-a11y@npm:^6.7.1": version: 6.8.0 resolution: "eslint-plugin-jsx-a11y@npm:6.8.0" @@ -19725,6 +19774,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.15.1": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd + languageName: node + linkType: hard + "is-core-module@npm:^2.9.0": version: 2.11.0 resolution: "is-core-module@npm:2.11.0" @@ -22339,7 +22397,7 @@ __metadata: languageName: node linkType: hard -"object.groupby@npm:^1.0.1": +"object.groupby@npm:^1.0.1, object.groupby@npm:^1.0.3": version: 1.0.3 resolution: "object.groupby@npm:1.0.3" dependencies:

LiR#J>Zr(qZ3IK5vW`R6830r~NqOfu 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 diff --git a/apps/dao/public/apple-touch-icon.png b/apps/dao/public/apple-touch-icon.png deleted file mode 100644 index 7d9762db86a735e3473c8eb74bbb02f42645f838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16657 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 p>f-3& - - - - - #ffffff - - - diff --git a/apps/dao/public/favicon-16x16.png b/apps/dao/public/favicon-16x16.png deleted file mode 100644 index 193be9f0444417d35d040bacc5e9083e032c1434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1438 zcmZ`(eKgf~82?F62`{@94U~Fz+598z58mBAQtz2*m0PP&o=%?;?S2;R&IL_)kU=Nmx%f zLa-)yP$h5xCM6C&}Y`Cv20c?y+CU!nTTz)Go5w^GH2bHEB>156ei!F zIp?ZtSTxmPrFzDj7_}Se6l(5>m?{_T^^djfwwg|>si!96f8mvu*R5JH*=VckG#VM@ z45`sUC?S@lanGo6?oPx(H@`(Xw}D=05mUL?uJfE@{8{#u}!4z^R5R4Oac3_rZGJ#h$7?Dd` z_EBmn#n)w?GoNc_ z-=)QW44aMj8x0N3>>n~8yCk4#+VSoQ|-C$$1fprHna;G@j zK~StNbe_p^f8A-#-K(BTowfaDmPt~BJ^K{Ei4XAc>P=0oozDh_3cnz4!&gR@<_?0G zO2&*W3;eu1!sa}X#KoDL&NeG6I#eu+=W%!zRu50TJQU`dY2a-qa;eO@=)WOrjZCyP zxcbb|I^N1<${$1pd4ZG$mL%t43j>`5) z49{3Ak8P~sEC1Y`SF&(zxm${Qe|fF!etGikICnXdyQje7lgPSFQ~9N5MNz_t>d5-d zy1fUExyT>ZrDzTw7nyX|ZykA9FQ;9~eKS9F&1%1W`1(C&GOy&v;1jOdudgXjmedNA zXCLn=D07TWd;9mqm}<2DW&H1|`mAB~49fYXGH%|5*lnvlRkhL#z6$`MM?yz1iQ)GzKrSM3Q$4hPe zQpAbUP^mZ}Gp$9+{%8o#3X4#LiZg6d)8(?HO;Q_0W~$UCDODi>wpF|sGcigN+1t0S zZEN@I4~4$1z)>PFvo#ASG1oV<@yc0#GeO_BHq552r?a`Ky=iWfVOx%GrN1KvElm|; Sp3bFg3;1~ldsTbJ<^BV_*>*Vq diff --git a/apps/dao/public/favicon-32x32.png b/apps/dao/public/favicon-32x32.png deleted file mode 100644 index 0bd32716ee188f047811e151c8698d42b32e54ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2383 zcmZ`*dpOgJAO2z&(J0` zvEq<}%ZQ2DJOI!YoAWjR(7=}5qk?~k{`PL?0U$;j09eTY@XrCoS^|Iw3;-9Ej=2lorQPKbtt$;}mOkJZ}BXe-N=KEJBjd`5=)Hq*j9( zPfJwL@@s~?``|fwkKJ_@avdS1 zAT{V}VkD?la>p8|g#<*9s(9v#Q`ICUYg5`hwlw6jpOAf76z1x*_6fEVDBg;y#M)$v z_-C8?%5WWdvzfY4Q&Lg=&lw81A&c9crlK9%zHT#n9*pT@mi3S7Kd7f~bc34EybXBW~GpL&_KCcH#j{nb^iL@qBN=$DQ42f58J*1X6G1WI_`6nn%!z z*aXWf)lSrWCKsu)7FAqwg&uwHRmmf^!s{t@YpS(s=j_E*M*C2-;m*@I@0gw4bA4A7cPn|Jpe;>)0;zWMBuk9BBV&4c{ts8^Kc}u1j+wJi zqGV`W9f&?4QyA_taEDsR&n1_u_AC<5Z6FWn4B?d4N1R!-8SH6?EW@{HG18FsdfE!z zS>&Qbv}m~3DEik$EyoEa6yS1d8nY)8%ElI`6MG|j1tfkWn2ul*`8HxDDot1_;%s2X zQpM9>q4ux}?-m~O5XaGwNEsfmg4%kwi5Y44N9C5VE~**7&Awxh=$ENnVTPBh(SC>J zYO8FYfB(~jT->zE;3JPHB~2t41Yc-J*6Xi{W~1@CYQizG zOumFl+x}yeF0VmWRW|mlrOxAJ=_-#jkY}PvMNqBENg*t{wYgf|>vOZfJwmT(Z@nWb zEQatR3D}cix-EE-kfIz&_}U*_1a!PX>CzD&1x&98c>3kqlDa{H8}e)dr+^&Pp-Ic z#=-DCNPpfLvt+z~F=9HoiJ4E{o#Ypg=d2?W{)jDX|3tOqab{(7)B3(HU3kU|h{#(H zZthym^0?9YrI;l9L5+;>{1PR~@D(XAm=)!K)m1zCy-v9hpSb+a4DLt6uvH{nuH&eL z-*h0(BRvJD>0=8@-r1~d94IIGpQ|PW*7>wljEyGGzhfpF`s#^D1worM`i;}~J8bnA z2{GC;9E-P|JC?n=tF#u)aMjc??Hqa8+3XpaIryyHoN;+qw&NiT{QAfx;@}qwNx}HZ z`@qTmJvCbu*+K0*Y@w@W*HL-w@M~iMg^XV`&%{~kr%#}(-0@>t@)=5OP#U7R(vmIS zVx{g%wazM`_4v)x*wn(+TCK zSc@%9Lo^&s*l3&VGDI5^#-Z*?a7?*l*@@4Y4bJ~AwidQO{?=<}krq8a1{O%UE8TnC z7bzaP(!gB5;(sYAVy?YM{$>U(Qf@BvPLCFMm?7dy!&{fBkc(=T*Wc$)}pJ`i)|_r-WUfRpNfWDuBfV&v#*} zEcuc;6!%r&Z{M#+x`yI+JAOM;oBnYB?sf(Un&pxD@sWmhbQ15~QX`jw4%ayPO=|t| z_}N(7oy>D72`>VlST1Fb4Sc?^P&T6`0Rv zju{9qIhH!v>od`YIUs#Z4&DOixoo_5AA4oKI40kgVeqVQf09o!2+;UTPls0aC-=yA z%GxXA*?iC^hPe_&oE)z<$iJ=NC9SYnt}#(0AClTVUUAH1xX(}@y2H54ewT$wGqhBQ}p@hRK>3(VyrvJLMp+(Ou` zDL+f(K24f)KuqIC=3PD-d^-(z>q6^u1U! zbkOu#Oah4+KxNV_{KIJn02pD6jPx;P`bNg?Mi>hdQwu{wT@1zogOQw=P5K|hwa|dz z!07*Ph)KJ6=D?u*BY_wi$h<)frvWwrp?)-^!!_y^nj4K85FOS}`|*N!#kiB0Zqyq{ zdU$AH@KqX;8BM1lgXv6v0EjA?|9V(F%oBwga2XtOSabu#G$hgfl5!eyPWKUFa!5SO vgcl&D(ddpG9Dmo>J=Cq*4IO0Ja~#pYvLc-M^{i>$K?LAHaK^tl>znvrcjhH& diff --git a/apps/dao/public/favicon.ico b/apps/dao/public/favicon.ico deleted file mode 100644 index ce502d7db701a9dd061df52512710666f9e5ccff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34494 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 XMl{yo{bC6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/dao/public/manifest.json b/apps/dao/public/manifest.json deleted file mode 100644 index f81487cbc..000000000 --- a/apps/dao/public/manifest.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "short_name": "Curve", - "name": "Curve", - "description": "Decentralized exchange liquidity pool designed for extremely efficient stablecoin trading and low-risk income for liquidity providers", - "iconPath": "logo-square.svg", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "android-chrome-512x512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/apps/dao/public/mstile-150x150.png b/apps/dao/public/mstile-150x150.png deleted file mode 100644 index 06a5e1831a5cb9716f896e3a64aab4cab1d7408e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16549 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 Skpf- diff --git a/apps/dao/public/safari-pinned-tab.svg b/apps/dao/public/safari-pinned-tab.svg deleted file mode 100644 index 3136ec8e3..000000000 --- a/apps/dao/public/safari-pinned-tab.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - -Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - - - diff --git a/apps/dao/src/pages/index.tsx b/apps/dao/src/pages/index.tsx deleted file mode 100644 index 7faab26d7..000000000 --- a/apps/dao/src/pages/index.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { useEffect } from 'react' -import { getAppRoot } from '@ui-kit/shared/routes' - -export default function Index() { - useEffect(() => { - location.href = `${getAppRoot('dao')}${location.search}${location.hash}` - }, []) - return null -} diff --git a/apps/dao/tsconfig.json b/apps/dao/tsconfig.json deleted file mode 100644 index 1c69510b1..000000000 --- a/apps/dao/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "tsconfig/nextjs.json", - "compilerOptions": { - "baseUrl": "./src", - "paths": { - "@dao/*": ["*"], - "@ui": ["../../../packages/ui/src/index.ts"], - "@ui/*": ["../../../packages/ui/src/*"], - "@ui-kit/*": ["../../../packages/curve-ui-kit/src/*"], - "@external-rewards": ["../../../packages/external-rewards/src/index.ts"] - } - }, - "exclude": ["node_modules", "cypress"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "../../packages/curve-ui-kit/**/*.d.ts"] -} diff --git a/apps/lend/.browserslistrc b/apps/lend/.browserslistrc deleted file mode 100644 index 6dc1b32ad..000000000 --- a/apps/lend/.browserslistrc +++ /dev/null @@ -1,2 +0,0 @@ -last 2 chrome version -last 2 firefox version \ No newline at end of file diff --git a/apps/lend/.env.sample b/apps/lend/.env.sample deleted file mode 100644 index 670c1d95a..000000000 --- a/apps/lend/.env.sample +++ /dev/null @@ -1,22 +0,0 @@ -# -# Curve dApp Environment Variables -# -# App environment variable -NEXT_PUBLIC_MAINTENANCE_MESSAGE= - -# Networks -NEXT_PUBLIC_ETHEREUM_DEV_RPC_URL= -NEXT_PUBLIC_OPTIMISM_DEV_RPC_URL= -NEXT_PUBLIC_GNOSIS_DEV_RPC_URL= -NEXT_PUBLIC_MOONBEAM_DEV_RPC_URL= -NEXT_PUBLIC_POLYGON_DEV_RPC_URL= -NEXT_PUBLIC_KAVA_DEV_RPC_URL= -NEXT_PUBLIC_FANTOM_DEV_RPC_URL= -NEXT_PUBLIC_ARBITRUM_DEV_RPC_URL= -NEXT_PUBLIC_AVALANCHE_DEV_RPC_URL= -NEXT_PUBLIC_CELO_DEV_RPC_URL= -NEXT_PUBLIC_AURORA_DEV_RPC_URL= -NEXT_PUBLIC_ZKSYNC_DEV_RPC_URL= -NEXT_PUBLIC_BASE_DEV_RPC_URL= -NEXT_PUBLIC_BSC_DEV_RPC_URL= -NEXT_PUBLIC_FRONTEND_DRPC_KEY= diff --git a/apps/lend/.gitignore b/apps/lend/.gitignore deleted file mode 100644 index 6d1e364e4..000000000 --- a/apps/lend/.gitignore +++ /dev/null @@ -1,50 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local - -# IDE config -.idea/ -.vscode/ - -# husky -.husky - -# vercel -.vercel - -# lingui compiled translation files -src/locales - -# TypeChain generated files -src/sdk/types/ethers-contracts - -# crash report -report.*.json diff --git a/apps/lend/.huskyrc.json b/apps/lend/.huskyrc.json deleted file mode 100644 index 5a1b2a8cb..000000000 --- a/apps/lend/.huskyrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "lint-staged" - } -} diff --git a/apps/lend/.lintstagedrc.json b/apps/lend/.lintstagedrc.json deleted file mode 100644 index e903b669c..000000000 --- a/apps/lend/.lintstagedrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "*.{ts,tsx,js,jsx,json,css,md}": ["prettier --write"] -} diff --git a/apps/lend/.prettierignore b/apps/lend/.prettierignore deleted file mode 100644 index 825f81b1d..000000000 --- a/apps/lend/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -next.config.js diff --git a/apps/lend/lingui.config.ts b/apps/lend/lingui.config.ts deleted file mode 100644 index b6c0e4aa9..000000000 --- a/apps/lend/lingui.config.ts +++ /dev/null @@ -1 +0,0 @@ -export { config as default } from '../../lingui.config' diff --git a/apps/lend/next-env.d.ts b/apps/lend/next-env.d.ts deleted file mode 100644 index 4f11a03dc..000000000 --- a/apps/lend/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/lend/next.config.js b/apps/lend/next.config.js deleted file mode 100644 index b73545a38..000000000 --- a/apps/lend/next.config.js +++ /dev/null @@ -1,58 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfiguration = { - output: 'export', - compiler: { - styledComponents: true - }, - experimental: { - swcPlugins: [ - ['@lingui/swc-plugin', { - // Optional - // Unlike the JS version this option must be passed as object only. - // Docs https://lingui.dev/ref/conf#runtimeconfigmodule - "runtimeModules": { - "i18n": ["@lingui/core", "i18n"], - "trans": ["@lingui/react", "Trans"] - } - }], - ] - }, - images: { - remotePatterns: [ - { - protocol: 'https', - hostname: 'cdn.jsdelivr.net', - }, - ], - unoptimized: true, - }, - trailingSlash: true, - transpilePackages: ['curve-ui-kit'], - webpack(config) { - config.module.rules.push({ - test: /\.svg$/, - use: ['@svgr/webpack', 'url-loader'] - }) - - return config - }, - eslint: { - // Warning: This allows production builds to successfully complete even if - // your project has ESLint errors. - // ignoreDuringBuilds: true, - }, - typescript: { - // !! WARN !! - // Dangerously allow production builds to successfully complete even if - // your project has type errors. - // !! WARN !! - // ignoreBuildErrors: true, - }, -} - -const withBundleAnalyzer = require('@next/bundle-analyzer')({ - openAnalyzer: false, - enabled: process.env.ANALYZE === 'true' -}) - -module.exports = withBundleAnalyzer(nextConfiguration) diff --git a/apps/lend/package.json b/apps/lend/package.json deleted file mode 100644 index 38bb5357c..000000000 --- a/apps/lend/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "lend", - "version": "0.1.0", - "private": true, - "engines": { - "node": "20" - }, - "scripts": { - "dev": "yarn i18n:compile && next dev -p 3003", - "build": "yarn i18n:extract && yarn i18n:compile && next build", - "start": "next start", - "lint": "next lint", - "typecheck": "tsc --noEmit", - "commit": "commit", - "prepublishOnly": "pinst --disable", - "postpublish": "pinst --enable", - "i18n:extract": "lingui extract", - "i18n:compile": "lingui compile", - "analyze": "ANALYZE=true next build" - }, - "peerDependencies": { - "eslint-config-custom": "*", - "react": "*", - "react-dom": "*", - "tsconfig": "*", - "typescript": "*" - }, - "dependencies": { - "@curvefi/lending-api": "^2.4.0", - "@supercharge/promise-pool": "^2.3.2", - "bignumber.js": "^9.1.2", - "cross-fetch": "^3.1.5", - "curve-ui-kit": "*", - "ethers": "^6.13.4", - "external-rewards": "*", - "focus-visible": "5.2.0", - "fuse.js": "^6.6.2", - "immer": "^9.0.12", - "intersection-observer": "^0.12.0", - "lodash": "4.17.21", - "memoizee": "^0.4.17", - "next": "^13.5.6", - "next-images": "^1.8.5", - "react": "*", - "react-aria": "3.22.0", - "react-dom": "*", - "react-is": "16.13.1", - "react-router-dom": "^6.3.0", - "react-stately": "3.18.0", - "recharts": "2.4.1", - "sharp": "^0.32.6", - "styled-components": "5.3.11", - "swr": "^1.3.0", - "ui": "*", - "zustand": "^4.5.5" - }, - "devDependencies": { - "@lingui/cli": "^4.6.0", - "@lingui/loader": "^4.6.0", - "@lingui/macro": "^4.6.0", - "@lingui/swc-plugin": "^4.0.4", - "@next/bundle-analyzer": "^13.5.6", - "@svgr/webpack": "^8.1.0", - "@types/lodash": "^4.14.182", - "@types/node": "17.0.24", - "@types/react": "*", - "@types/react-dom": "*", - "@types/styled-components": "5.1.14", - "eslint-config-custom": "*", - "pinst": "^2.1.4", - "prop-types": "^15.6.0", - "tsconfig": "*", - "typescript": "*", - "webpack": "^5.83.1" - }, - "resolutions": { - "styled-components": "^5" - } -} diff --git a/apps/lend/public/android-chrome-192x192.png b/apps/lend/public/android-chrome-192x192.png deleted file mode 100644 index f0df21c885cb5ab8e1be066e1c38147b8cf55be8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28014 zcmV)=K!m@EP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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ℑ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