From ec53308db1d69e0c5498b22cc2b031b988c28309 Mon Sep 17 00:00:00 2001 From: Daniil Polienko Date: Wed, 6 Nov 2024 01:00:10 +0300 Subject: [PATCH] feat: add usePortals --- bun.lockb | Bin 675608 -> 695720 bytes package.json | 158 ++--- .../lib/components/common/DepositModal.tsx | 17 +- .../lib/components/common/WithdrawModal.tsx | 26 +- packages/lib/contexts/useSolver.tsx | 11 +- packages/lib/solvers/usePortalsSolver.ts | 558 +++++------------- 6 files changed, 268 insertions(+), 502 deletions(-) diff --git a/bun.lockb b/bun.lockb index 32d25b92e10a93065b04f61f02393e2e29fc9565..2f5b9fd9c02e133a99bae03fd500ecaab33e90f1 100755 GIT binary patch delta 52453 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
>?#a@ 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 diff --git a/package.json b/package.json index 737a793..9fe459e 100644 --- a/package.json +++ b/package.json @@ -1,81 +1,81 @@ { - "name": "yearnx", - "private": true, - "workspaces": [ - "packages/*" - ], - "scripts": { - "prettier-format": "prettier --config .prettierrc ./packages/**/**/*.{json,js,ts,tsx,css} --write", - "lint": "eslint . --ext .js,.jsx,.ts,.tsx" - }, - "dependencies": { - "@builtbymom/web3": "0.0.215", - "@closeio/use-abortable-effect": "^1.0.0", - "@generationsoftware/hyperstructure-client-js": "^1.12.6", - "@generationsoftware/hyperstructure-react-hooks": "^1.16.8", - "@headlessui/react": "^2.0.3", - "@rainbow-me/rainbowkit": "^2.1.3", - "@react-hookz/web": "^24.0.4", - "@tailwindcss/forms": "^0.5.7", - "@tailwindcss/typography": "^0.5.13", - "@tanstack/react-query": "^5.51.21", - "@wagmi/core": "^2.13.1", - "axios": "^1.6.8", - "framer-motion": "^11.1.9", - "next": "14.0.4", - "next-plausible": "^3.12.1", - "next-pwa": "^5.6.0", - "rc-input-number": "^9.0.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-hot-toast": "^2.4.1", - "react-paginate": "^8.2.0", - "swr": "^2.2.5", - "tailwindcss": "^3.4.3", - "tailwindcss-animate": "^1.0.7", - "usehooks-ts": "^3.1.0", - "vaul": "^0.9.1", - "viem": "^2.18.8", - "wagmi": "^2.12.2", - "web3-eth-abi": "1.10.0", - "xxhashjs": "^0.2.2", - "zod": "^3.23.8" - }, - "devDependencies": { - "@commitlint/cli": "^19.3.0", - "@commitlint/config-conventional": "^19.2.2", - "@total-typescript/ts-reset": "^0.5.1", - "@types/node": "^20.12.11", - "@types/nprogress": "^0.2.3", - "@types/react": "^18.3.2", - "@types/react-dom": "^18.3.0", - "@typescript-eslint/eslint-plugin": "^7.8.0", - "@typescript-eslint/parser": "^7.8.0", - "autoprefixer": "^10.4.19", - "babel-loader": "^9.1.3", - "bun-types": "^1.1.8", - "eslint": "8.57.0", - "eslint-config-next": "^14.2.3", - "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-brackets": "^0.1.3", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-simple-import-sort": "^12.1.0", - "eslint-plugin-tailwindcss": "^3.15.1", - "eslint-plugin-unused-imports": "^3.2.0", - "lint-staged": "^15.2.2", - "next-transpile-modules": "^10.0.1", - "postcss": "^8.4.38", - "postcss-import": "^16.1.0", - "postcss-nesting": "^12.1.3", - "prettier": "^3.2.5", - "sass": "^1.77.1", - "sharp": "^0.33.3", - "stylelint": "^16.5.0", - "stylelint-config-standard": "^36.0.0", - "ts-loader": "^9.5.1", - "typescript": "^5.4.5" - } + "name": "yearnx", + "private": true, + "workspaces": [ + "packages/*" + ], + "scripts": { + "prettier-format": "prettier --config .prettierrc ./packages/**/**/*.{json,js,ts,tsx,css} --write", + "lint": "eslint . --ext .js,.jsx,.ts,.tsx" + }, + "dependencies": { + "@builtbymom/web3": "0.0.218", + "@closeio/use-abortable-effect": "^1.0.0", + "@generationsoftware/hyperstructure-client-js": "^1.12.6", + "@generationsoftware/hyperstructure-react-hooks": "^1.16.8", + "@headlessui/react": "^2.0.3", + "@rainbow-me/rainbowkit": "^2.1.3", + "@react-hookz/web": "^24.0.4", + "@tailwindcss/forms": "^0.5.7", + "@tailwindcss/typography": "^0.5.13", + "@tanstack/react-query": "^5.51.21", + "@wagmi/core": "^2.13.1", + "axios": "^1.6.8", + "framer-motion": "^11.1.9", + "next": "14.0.4", + "next-plausible": "^3.12.1", + "next-pwa": "^5.6.0", + "rc-input-number": "^9.0.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hot-toast": "^2.4.1", + "react-paginate": "^8.2.0", + "swr": "^2.2.5", + "tailwindcss": "^3.4.3", + "tailwindcss-animate": "^1.0.7", + "usehooks-ts": "^3.1.0", + "vaul": "^0.9.1", + "viem": "^2.18.8", + "wagmi": "^2.12.2", + "web3-eth-abi": "1.10.0", + "xxhashjs": "^0.2.2", + "zod": "^3.23.8" + }, + "devDependencies": { + "@commitlint/cli": "^19.3.0", + "@commitlint/config-conventional": "^19.2.2", + "@total-typescript/ts-reset": "^0.5.1", + "@types/node": "^20.12.11", + "@types/nprogress": "^0.2.3", + "@types/react": "^18.3.2", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "autoprefixer": "^10.4.19", + "babel-loader": "^9.1.3", + "bun-types": "^1.1.8", + "eslint": "8.57.0", + "eslint-config-next": "^14.2.3", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-brackets": "^0.1.3", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-simple-import-sort": "^12.1.0", + "eslint-plugin-tailwindcss": "^3.15.1", + "eslint-plugin-unused-imports": "^3.2.0", + "lint-staged": "^15.2.2", + "next-transpile-modules": "^10.0.1", + "postcss": "^8.4.38", + "postcss-import": "^16.1.0", + "postcss-nesting": "^12.1.3", + "prettier": "^3.2.5", + "sass": "^1.77.1", + "sharp": "^0.33.3", + "stylelint": "^16.5.0", + "stylelint-config-standard": "^36.0.0", + "ts-loader": "^9.5.1", + "typescript": "^5.4.5" + } } diff --git a/packages/lib/components/common/DepositModal.tsx b/packages/lib/components/common/DepositModal.tsx index 22ebe8c..0590446 100644 --- a/packages/lib/components/common/DepositModal.tsx +++ b/packages/lib/components/common/DepositModal.tsx @@ -76,7 +76,7 @@ export function DepositModalContent(props: TDepositModalProps): ReactElement { openAccountModal?.(); } if (canDeposit) { - const isSuccess = await onDeposit(); + const isSuccess = await onDeposit(receipt => console.info('receipt: ', receipt)); if (isSuccess) { plausible(PLAUSIBLE_EVENTS.DEPOSIT, { props: { @@ -92,10 +92,10 @@ export function DepositModalContent(props: TDepositModalProps): ReactElement { props.openSuccessModal({ isOpen: true, description: ( -
-

{'Successfully deposited'}

- -
+ + {'Successfully deposited'} +   + {!isZapNeededForDeposit ? configuration?.tokenToSpend.amount?.display.slice(0, 7) : formatBigIntForDisplay( @@ -103,13 +103,14 @@ export function DepositModalContent(props: TDepositModalProps): ReactElement { configuration?.tokenToSpend.token?.decimals ?? 18, {maximumFractionDigits: 6} )} -

{configuration?.tokenToSpend?.token?.symbol}

+   + {configuration?.tokenToSpend?.token?.symbol} {'to'} {configuration?.vault?.name} -
-
+ + ) }); } diff --git a/packages/lib/components/common/WithdrawModal.tsx b/packages/lib/components/common/WithdrawModal.tsx index e5c77ba..147c9b1 100644 --- a/packages/lib/components/common/WithdrawModal.tsx +++ b/packages/lib/components/common/WithdrawModal.tsx @@ -334,7 +334,9 @@ function ButtonComponent(props: { onApprove?.(); return; } - const isSuccess = await onWithdraw(); + + const isSuccess = await onWithdraw(receipt => console.info('receipt: ', receipt)); + if (isSuccess) { plausible(PLAUSIBLE_EVENTS.WITHDRAW, { props: { @@ -350,11 +352,11 @@ function ButtonComponent(props: { props.openSuccessModal({ isOpen: true, description: ( -
-

{'Successfully withdrawn'}

- -
-
+ + {'Successfully withdrawn'} +   + + {!isZapNeededForWithdraw ? configuration?.tokenToSpend.amount?.display.slice(0, 7) : formatBigIntForDisplay( @@ -362,13 +364,13 @@ function ButtonComponent(props: { quote?.outputTokenDecimals ?? 18, {maximumFractionDigits: 6} )} -

{configuration?.tokenToReceive?.token?.symbol}

-
+ {configuration?.tokenToReceive?.token?.symbol} + {'to your wallet'} -
-
+ + ) }); } @@ -413,7 +415,7 @@ function ButtonComponent(props: { return 'Withdraw'; }, [address, canZap, isFetchingQuote, isWalletSafe, isApproved, isZapNeededForWithdraw]); - const isWithdrawDisable = + const isWithdrawDisabled = !props.isReady || !configuration?.tokenToSpend.amount || configuration?.tokenToSpend.amount.raw === 0n || @@ -423,7 +425,7 @@ function ButtonComponent(props: {