From afd943881da53ce26dec02adfe37b41149e6df43 Mon Sep 17 00:00:00 2001 From: Joseph Chalabi <100090645+chalabi2@users.noreply.github.com> Date: Mon, 15 Apr 2024 08:14:14 -0700 Subject: [PATCH] feat:add saga (#1435) * feat:add saga * lint --- web-ui/.env | 7 +- web-ui/bun.lockb | Bin 526103 -> 522796 bytes web-ui/components/Assets/assetsGrid.tsx | 137 +++++++++--------- web-ui/components/Assets/intents.tsx | 6 +- .../Assets/modals/qTokenDepositModal.tsx | 18 ++- .../Assets/modals/qTokenWithdrawlModal.tsx | 19 ++- web-ui/components/Assets/portfolio.tsx | 10 +- web-ui/components/Assets/unbondingTable.tsx | 4 +- .../Staking/networkSelectButton.tsx | 1 - web-ui/hooks/useGrpcQueryClient.ts | 2 + web-ui/hooks/useRpcQueryClient.ts | 2 + web-ui/package.json | 10 +- web-ui/pages/_app.tsx | 9 +- web-ui/pages/assets.tsx | 136 +++++++++-------- web-ui/public/img/networks/qsaga.svg | 1 + web-ui/public/img/networks/saga.svg | 1 + web-ui/state/chains/prod.ts | 18 ++- web-ui/utils/maths.ts | 2 +- 18 files changed, 215 insertions(+), 168 deletions(-) create mode 100644 web-ui/public/img/networks/qsaga.svg create mode 100644 web-ui/public/img/networks/saga.svg diff --git a/web-ui/.env b/web-ui/.env index 638c38600..17302de3c 100644 --- a/web-ui/.env +++ b/web-ui/.env @@ -15,13 +15,15 @@ NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_JUNO="https://lcd.juno-1.quicksilver.zone" NEXT_PUBLIC_MAINNET_RPC_ENDPOINT_JUNO="https://rpc.juno-1.quicksilver.zone" NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_DYDX="https://lcd.dydx-mainnet-1.quicksilver.zone" NEXT_PUBLIC_MAINNET_RPC_ENDPOINT_DYDX="https://rpc.dydx-mainnet-1.quicksilver.zone" +NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_SAGA="https://lcd.ssc-1.quicksilver.zone/" +NEXT_PUBLIC_MAINNET_RPC_ENDPOINT_SAGA="https://rpc.ssc-1.quicksilver.zone/" NEXT_PUBLIC_QUICKSILVER_API="https://lcd.quicksilver.zone" NEXT_PUBLIC_QUICKSILVER_DATA_API="https://data.quicksilver.zone" ZONE_URL="quicksilver.zone" APY_ZONES_ENDPOINT = "https://chains.cosmos.directory" NEXT_PUBLIC_OSMOSIS_API="https://api.osmosis.zone" -NEXT_PUBLIC_WHITELISTED_DENOM="uatom,ustars,uosmo,usomm,uregen,ujuno,udydx" -NEXT_PUBLIC_WHITELISTED_ZONES="osmosis-1,stargaze-1,regen-1,cosmoshub-4,sommelier-3,juno-1,dydx-mainnet-1" +NEXT_PUBLIC_WHITELISTED_DENOM="uatom,ustars,uosmo,usomm,uregen,ujuno,udydx,usaga" +NEXT_PUBLIC_WHITELISTED_ZONES="osmosis-1,stargaze-1,regen-1,cosmoshub-4,sommelier-3,juno-1,dydx-mainnet-1,ssc-1" NEXT_PUBLIC_COSMOSHUB_CHAIN_ID=cosmoshub-4 NEXT_PUBLIC_OSMOSIS_CHAIN_ID=osmosis-1 NEXT_PUBLIC_STARGAZE_CHAIN_ID=stargaze-1 @@ -29,4 +31,5 @@ NEXT_PUBLIC_REGEN_CHAIN_ID=regen-1 NEXT_PUBLIC_SOMMELIER_CHAIN_ID=sommelier-3 NEXT_PUBLIC_JUNO_CHAIN_ID=juno-1 NEXT_PUBLIC_DYDX_CHAIN_ID=dydx-mainnet-1 +NEXT_PUBLIC_DYDX_CHAIN_ID=ssc-1 NEXT_PRIVATE_WALLET_CONNECT_TOKEN="41a0749c331d209190beeac1c2530c90" \ No newline at end of file diff --git a/web-ui/bun.lockb b/web-ui/bun.lockb index 77d7b33496c1d17625c3515f966686a0f8e42bf2..3098dde1f30634f7994aff98f1dfe8d49fafa10b 100755 GIT binary patch delta 114479 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 {FtYW(Ko2B>_s62ix$wO+hd0&@D33ZpR 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 diff --git a/web-ui/components/Assets/assetsGrid.tsx b/web-ui/components/Assets/assetsGrid.tsx index d0e5fde3d..5884fe78f 100644 --- a/web-ui/components/Assets/assetsGrid.tsx +++ b/web-ui/components/Assets/assetsGrid.tsx @@ -17,16 +17,12 @@ import { } from '@chakra-ui/react'; import React, { useEffect, useState } from 'react'; - - import { shiftDigits, formatQasset, formatNumber } from '@/utils'; import QDepositModal from './modals/qTokenDepositModal'; import QWithdrawModal from './modals/qTokenWithdrawlModal'; - - interface AssetCardProps { address: string; assetName: string; @@ -88,6 +84,7 @@ const AssetCard: React.FC = ({ address, assetName, balance, apy, 'regen-1': 'regen', 'juno-1': 'juno', 'dydx-mainnet-1': 'dydx', + 'ssc-1': 'saga', }; const getChainName = (chainId: string) => { @@ -179,38 +176,35 @@ const AssetCard: React.FC = ({ address, assetName, balance, apy, - - On Quicksilver - - {!balance || !liquidRewards ? ( - - ) : ( - - {formatNumber(parseFloat(balance))} {assetName} - - )} - - {!balance || !liquidRewards ?( - <> - - - - ) : ( - Number(balance) > 0 && ( - <> - - Redeem For - - - {formatNumber(parseFloat(balance) / Number(redemptionRates))} {assetName.replace('q', '')} - - - ) - )} - + + On Quicksilver + + {!balance || !liquidRewards ? ( + + ) : ( + + {formatNumber(parseFloat(balance))} {assetName} + + )} + + {!balance || !liquidRewards ? ( + <> + + + + ) : ( + Number(balance) > 0 && ( + <> + + Redeem For + + + {formatNumber(parseFloat(balance) / Number(redemptionRates))} {assetName.replace('q', '')} + + + ) + )} + - + - - Interchain - - {!balance || !liquidRewards || !interchainBalance ? ( - - ) : ( - - {formatNumber(parseFloat(interchainBalance))} {assetName} - - )} - - {!balance || !liquidRewards || !interchainBalance ? ( - <> - - - - ) : ( - Number(interchainBalance) > 0 && ( - <> - - Redeem For - - - {formatNumber(parseFloat(interchainBalance) / Number(redemptionRates))} {assetName.replace('q', '')} - - - ) - )} - + + Interchain + + {!balance || !liquidRewards || !interchainBalance ? ( + + ) : ( + + {formatNumber(parseFloat(interchainBalance))} {assetName} + + )} + + {!balance || !liquidRewards || !interchainBalance ? ( + <> + + + + ) : ( + Number(interchainBalance) > 0 && ( + <> + + Redeem For + + + {formatNumber(parseFloat(interchainBalance) / Number(redemptionRates))} {assetName.replace('q', '')} + + + ) + )} + = ({ address, isWalletConnected }) => { const networks = process.env.NEXT_PUBLIC_CHAIN_ENV === 'mainnet' ? prodNetworks : devNetworks; - const chains = ['Cosmos', 'Osmosis', 'Dydx', 'Stargaze', 'Regen', 'Sommelier', 'Juno']; + const chains = ['Cosmos', 'Osmosis', 'Dydx', 'Stargaze', 'Regen', 'Sommelier', 'Juno', 'Saga']; const [currentChainIndex, setCurrentChainIndex] = useState(0); const [isBottomVisible, setIsBottomVisible] = useState(true); @@ -55,8 +53,6 @@ const StakingIntent: React.FC = ({ address, isWalletConnecte const { intent, refetch } = useIntentQuery(currentNetwork.chainName, address ?? ''); - - interface ValidatorDetails { moniker: string; logoUrl: string | undefined; diff --git a/web-ui/components/Assets/modals/qTokenDepositModal.tsx b/web-ui/components/Assets/modals/qTokenDepositModal.tsx index b26c95855..9a50129cd 100644 --- a/web-ui/components/Assets/modals/qTokenDepositModal.tsx +++ b/web-ui/components/Assets/modals/qTokenDepositModal.tsx @@ -30,7 +30,7 @@ import { handleSelectChainDropdown, ChainOption, ChooseChainInfo } from '@/compo import { useTx } from '@/hooks'; import { useFeeEstimation } from '@/hooks/useFeeEstimation'; import { ibcDenomDepositMapping } from '@/state/chains/prod'; -import { getCoin, getIbcInfo } from '@/utils'; +import { getCoin, getExponent, getIbcInfo } from '@/utils'; export interface QDepositModalProps { token: string; @@ -90,8 +90,8 @@ const QDepositModal: React.FC = ({ token, isOpen, onClose, i const onSubmitClick = async () => { setIsLoading(true); - - const transferAmount = new BigNumber(amount).shiftedBy(6).toString(); + const exp = token === 'qDYDX' ? 18 : 6; + const transferAmount = new BigNumber(amount).shiftedBy(exp).toString(); const { source_port, source_channel } = getIbcInfo(fromChain ?? '', toChain ?? ''); @@ -160,7 +160,9 @@ const QDepositModal: React.FC = ({ token, isOpen, onClose, i - Deposit {token} Tokens + + Deposit {token} Tokens + {/* Chain Selection Dropdown */} @@ -205,7 +207,13 @@ const QDepositModal: React.FC = ({ token, isOpen, onClose, i size="xs" _active={{ transform: 'scale(0.95)', color: 'complimentary.800' }} _hover={{ bgColor: 'transparent', color: 'complimentary.400' }} - onClick={() => setAmount(BigNumber(parseFloat(maxAmount) / 2).toFixed(6).toString())} + onClick={() => + setAmount( + BigNumber(parseFloat(maxAmount) / 2) + .toFixed(6) + .toString(), + ) + } > Half diff --git a/web-ui/components/Assets/modals/qTokenWithdrawlModal.tsx b/web-ui/components/Assets/modals/qTokenWithdrawlModal.tsx index 865540633..d307575a0 100644 --- a/web-ui/components/Assets/modals/qTokenWithdrawlModal.tsx +++ b/web-ui/components/Assets/modals/qTokenWithdrawlModal.tsx @@ -31,7 +31,7 @@ import { useTx } from '@/hooks'; import { useFeeEstimation } from '@/hooks/useFeeEstimation'; import { useIbcBalanceQuery } from '@/hooks/useQueries'; import { ibcDenomWithdrawMapping } from '@/state/chains/prod'; -import { getCoin, getIbcInfo } from '@/utils'; +import { getCoin, getExponent, getIbcInfo } from '@/utils'; interface QDepositModalProps { max: string; @@ -88,8 +88,9 @@ const QWithdrawModal: React.FC = ({ max, token, isOpen, onCl const onSubmitClick = async () => { setIsLoading(true); + const exp = token === 'qDYDX' ? 18 : 6; - const transferAmount = new BigNumber(amount).shiftedBy(6).toString(); + const transferAmount = new BigNumber(amount).shiftedBy(exp).toString(); const { source_port, source_channel } = getIbcInfo(fromChain ?? '', toChain ?? ''); @@ -159,7 +160,9 @@ const QWithdrawModal: React.FC = ({ max, token, isOpen, onCl - Withdraw {token} Tokens + + Withdraw {token} Tokens + {/* Chain Selection Dropdown */} @@ -196,7 +199,7 @@ const QWithdrawModal: React.FC = ({ max, token, isOpen, onCl placeholder="Enter amount" /> - + diff --git a/web-ui/components/Assets/portfolio.tsx b/web-ui/components/Assets/portfolio.tsx index 8dbd925f7..b58668f00 100644 --- a/web-ui/components/Assets/portfolio.tsx +++ b/web-ui/components/Assets/portfolio.tsx @@ -116,10 +116,10 @@ const MyPortfolio: React.FC = ({ {isLoading && ( - - - - + + + + )} {totalValue === 0 && ( @@ -185,7 +185,7 @@ interface PortfolioItemProps { const PortfolioItem: React.FC = ({ title, amount, qTokenPrice, index }) => { const tokenValue = Number(amount) * qTokenPrice; - const imgType = title === 'qATOM' ? 'svg' : 'png'; + const imgType = title === 'qATOM' || title === 'qSAGA' ? 'svg' : 'png'; return ( = ({ address, isWalletConnected }) => { - const chains = ['Cosmos', 'Stargaze', 'Osmosis', 'Regen', 'Sommelier', 'Juno', 'Dydx']; + const chains = ['Cosmos', 'Stargaze', 'Osmosis', 'Regen', 'Sommelier', 'Juno', 'Dydx', 'Saga']; const [currentChainIndex, setCurrentChainIndex] = useState(0); // Switcher lets us use a pretty name for the chain in the UI, but query the chain by its actual name. @@ -56,6 +56,8 @@ const UnbondingAssetsTable: React.FC = ({ address, is newChainName = 'juno'; } else if (currentChainName === 'Dydx') { newChainName = 'dydx'; + } else if (currentChainName === 'Saga') { + newChainName = 'saga'; } else { // Default case newChainName = currentChainName; diff --git a/web-ui/components/Staking/networkSelectButton.tsx b/web-ui/components/Staking/networkSelectButton.tsx index cb6ff9bf2..d07ff155a 100644 --- a/web-ui/components/Staking/networkSelectButton.tsx +++ b/web-ui/components/Staking/networkSelectButton.tsx @@ -80,7 +80,6 @@ export const NetworkSelect: React.FC = ({ buttonTextColor = 'wh _active={{ bgColor: 'rgba(255,128,0, 0.25)', }} - _focus={{ bgColor: 'rgba(255,128,0, 0.25)', }} diff --git a/web-ui/hooks/useGrpcQueryClient.ts b/web-ui/hooks/useGrpcQueryClient.ts index 4850c0c91..26daf293a 100644 --- a/web-ui/hooks/useGrpcQueryClient.ts +++ b/web-ui/hooks/useGrpcQueryClient.ts @@ -18,6 +18,7 @@ export const useGrpcQueryClient = (chainName: string) => { osmosis: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_LCD_ENDPOINT_OSMOSIS : process.env.NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_OSMOSIS, juno: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_LCD_ENDPOINT_JUNO : process.env.NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_JUNO, dydx: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_LCD_ENDPOINT_DYDX : process.env.NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_DYDX, + saga: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_LCD_ENDPOINT_SAGA : process.env.NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_SAGA, }; grpcEndpoint = endpoints[chainName]; @@ -34,5 +35,6 @@ export const useGrpcQueryClient = (chainName: string) => { return { grpcQueryClient: grpcQueryClientQuery.data, + grpcQueryClientError: grpcQueryClientQuery.error, }; }; diff --git a/web-ui/hooks/useRpcQueryClient.ts b/web-ui/hooks/useRpcQueryClient.ts index 90c22bbed..27e06ec2f 100644 --- a/web-ui/hooks/useRpcQueryClient.ts +++ b/web-ui/hooks/useRpcQueryClient.ts @@ -1,3 +1,4 @@ +import { saga } from '@chain-registry/assets'; import { HttpEndpoint } from '@cosmjs/stargate'; import { useQuery } from '@tanstack/react-query'; import { cosmos } from 'interchain-query'; @@ -20,6 +21,7 @@ export const useRpcQueryClient = (chainName: string) => { osmosis: env === 'testnet' ? process.env.TESTNET_RPC_ENDPOINT_OSMOSIS : process.env.MAINNET_RPC_ENDPOINT_OSMOSIS, juno: env === 'testnet' ? process.env.TESTNET_RPC_ENDPOINT_JUNO : process.env.MAINNET_RPC_ENDPOINT_JUNO, dydx: env === 'testnet' ? process.env.TESTNET_RPC_ENDPOINT_DYDX : process.env.MAINNET_RPC_ENDPOINT_DYDX, + saga: env === 'testnet' ? process.env.TESTNET_RPC_ENDPOINT_SAGA : process.env.MAINNET_RPC_ENDPOINT_SAGA, }; rpcEndpoint = endpoints[chainName]; diff --git a/web-ui/package.json b/web-ui/package.json index 0a78ab208..504cfef56 100644 --- a/web-ui/package.json +++ b/web-ui/package.json @@ -8,10 +8,12 @@ "dev": "next dev", "start": "next start", "lint": "next lint --fix", - "export": "next export" + "export": "next export", + "remove": "rm -rf node_modules/ bun.lockb $HOME/.bun/install/cache/", + "update-deps": "bunx npm-check-updates --root --format group -i" }, "dependencies": { - "@chain-registry/assets": "^1.26.0", + "@chain-registry/assets": "^1.42.0", "@chakra-ui/icons": "^2.0.12", "@chakra-ui/react": "2.8.2", "@chakra-ui/system": "^2.1.3", @@ -29,13 +31,13 @@ "@interchain-ui/react": "1.10.0", "@osmonauts/lcd": "^1.0.3", "@radix-ui/react-icons": "^1.3.0", - "@skip-router/core": "2.0.5", + "@skip-router/core": "2.4.1", "@tanstack/react-query": "4.36.1", "@tanstack/react-query-devtools": "4.36.1", "@types/crypto-js": "^4.2.1", "@vercel/speed-insights": "^1.0.10", "bech32": "^2.0.0", - "chain-registry": "1.33.17", + "chain-registry": "1.41.0", "chakra-react-select": "^4.7.6", "cosmjs-types": "0.5.0", "crypto-js": "^4.2.0", diff --git a/web-ui/pages/_app.tsx b/web-ui/pages/_app.tsx index d99029beb..e65cf6697 100644 --- a/web-ui/pages/_app.tsx +++ b/web-ui/pages/_app.tsx @@ -68,6 +68,7 @@ function QuickApp({ Component, pageProps }: AppProps) { env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_RPC_ENDPOINT_OSMOSIS : process.env.NEXT_PUBLIC_MAINNET_RPC_ENDPOINT_OSMOSIS, juno: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_RPC_ENDPOINT_JUNO : process.env.NEXT_PUBLIC_MAINNET_RPC_ENDPOINT_JUNO, dydx: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_RPC_ENDPOINT_DYDX : process.env.NEXT_PUBLIC_MAINNET_RPC_ENDPOINT_DYDX, + saga: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_RPC_ENDPOINT_SAGA : process.env.NEXT_PUBLIC_MAINNET_RPC_ENDPOINT_SAGA, }; const lcdEndpoints = { @@ -86,6 +87,7 @@ function QuickApp({ Component, pageProps }: AppProps) { env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_LCD_ENDPOINT_OSMOSIS : process.env.NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_OSMOSIS, juno: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_LCD_ENDPOINT_JUNO : process.env.NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_JUNO, dydx: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_LCD_ENDPOINT_DYDX : process.env.NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_DYDX, + saga: env === 'testnet' ? process.env.NEXT_PUBLIC_TESTNET_LCD_ENDPOINT_SAGA : process.env.NEXT_PUBLIC_MAINNET_LCD_ENDPOINT_SAGA, }; const modalThemeOverrides: ThemeCustomizationProps = { @@ -217,7 +219,6 @@ function QuickApp({ Component, pageProps }: AppProps) { return ( - - +

diff --git a/web-ui/pages/assets.tsx b/web-ui/pages/assets.tsx index 95667088d..0ded3ffff 100644 --- a/web-ui/pages/assets.tsx +++ b/web-ui/pages/assets.tsx @@ -1,3 +1,4 @@ +import { saga } from '@chain-registry/assets'; import { Box, Container, Flex, SlideFade, Spacer, Text, Center } from '@chakra-ui/react'; import { useChain } from '@cosmos-kit/react'; import dynamic from 'next/dynamic'; @@ -31,8 +32,8 @@ export interface PortfolioItemInterface { function Home() { const { address } = useChain('quicksilver'); - const tokens = ['atom', 'osmo', 'stars', 'regen', 'somm', 'juno', 'dydx']; - const getExponent = (denom: string) => ['qdydx', 'aqdydx'].includes(denom) ? 18 : 6; + const tokens = ['atom', 'osmo', 'stars', 'regen', 'somm', 'juno', 'dydx', 'saga']; + const getExponent = (denom: string) => (['qdydx', 'aqdydx'].includes(denom) ? 18 : 6); const { grpcQueryClient } = useGrpcQueryClient('quicksilver'); @@ -44,8 +45,6 @@ function Home() { const { liquidRewards, refetch: liquidRefetch } = useLiquidRewardsQuery(address ?? ''); const { authData, authError, authRefetch } = useAuthChecker(address ?? ''); - - const refetchAll = () => { qRefetch(); liquidRefetch(); @@ -60,6 +59,7 @@ function Home() { const SOMMELIER_CHAIN_ID = process.env.NEXT_PUBLIC_SOMMELIER_CHAIN_ID; const JUNO_CHAIN_ID = process.env.NEXT_PUBLIC_JUNO_CHAIN_ID; const DYDX_CHAIN_ID = process.env.NEXT_PUBLIC_DYDX_CHAIN_ID; + const SAGA_CHAIN_ID = process.env.NEXT_PUBLIC_SAGA_CHAIN_ID; const tokenToChainIdMap: { [key: string]: string | undefined } = useMemo(() => { return { @@ -70,43 +70,55 @@ function Home() { somm: SOMMELIER_CHAIN_ID, juno: JUNO_CHAIN_ID, dydx: DYDX_CHAIN_ID, + saga: SAGA_CHAIN_ID, }; - }, [COSMOSHUB_CHAIN_ID, OSMOSIS_CHAIN_ID, STARGAZE_CHAIN_ID, REGEN_CHAIN_ID, SOMMELIER_CHAIN_ID, JUNO_CHAIN_ID, DYDX_CHAIN_ID]); + }, [ + COSMOSHUB_CHAIN_ID, + OSMOSIS_CHAIN_ID, + STARGAZE_CHAIN_ID, + REGEN_CHAIN_ID, + SOMMELIER_CHAIN_ID, + JUNO_CHAIN_ID, + DYDX_CHAIN_ID, + SAGA_CHAIN_ID, + ]); function getChainIdForToken(tokenToChainIdMap: { [x: string]: any }, baseToken: string) { return tokenToChainIdMap[baseToken.toLowerCase()] || null; } -const nonNative = liquidRewards?.assets; -const portfolioItems: PortfolioItemInterface[] = useMemo(() => { - if (!qbalance || !APYs || !redemptionRates || isLoadingAll || !liquidRewards) return []; - - // Flatten nonNative assets into a single array and accumulate amounts for each denom - const amountsMap = new Map(); - Object.values(nonNative || {}).flat().flatMap(reward => reward.Amount).forEach(({ denom, amount }) => { - const currentAmount = amountsMap.get(denom) || 0; - amountsMap.set(denom, currentAmount + Number(amount)); - }); - - // Map over the accumulated results to create portfolio items - return Array.from(amountsMap.entries()).map(([denom, amount]) => { - const normalizedDenom = denom.slice(2); - const chainId = getChainIdForToken(tokenToChainIdMap, normalizedDenom); - const tokenPriceInfo = tokenPrices?.find((info) => info.token === normalizedDenom); - const redemptionRate = chainId && redemptionRates[chainId] ? redemptionRates[chainId].current : 1; - const qTokenPrice = tokenPriceInfo ? tokenPriceInfo.price * redemptionRate : 0; - const exp = getExponent(denom); - const normalizedAmount = shiftDigits(amount, -exp); - - return { - title: 'q' + normalizedDenom.toUpperCase(), - amount: normalizedAmount.toString(), - qTokenPrice: qTokenPrice, - chainId: chainId ?? '', - }; - }); -// eslint-disable-next-line react-hooks/exhaustive-deps -}, [qbalance, APYs, redemptionRates, isLoadingAll, liquidRewards, nonNative, tokenToChainIdMap, tokenPrices, refetchAll]); - + const nonNative = liquidRewards?.assets; + const portfolioItems: PortfolioItemInterface[] = useMemo(() => { + if (!qbalance || !APYs || !redemptionRates || isLoadingAll || !liquidRewards) return []; + + // Flatten nonNative assets into a single array and accumulate amounts for each denom + const amountsMap = new Map(); + Object.values(nonNative || {}) + .flat() + .flatMap((reward) => reward.Amount) + .forEach(({ denom, amount }) => { + const currentAmount = amountsMap.get(denom) || 0; + amountsMap.set(denom, currentAmount + Number(amount)); + }); + + // Map over the accumulated results to create portfolio items + return Array.from(amountsMap.entries()).map(([denom, amount]) => { + const normalizedDenom = denom.slice(2); + const chainId = getChainIdForToken(tokenToChainIdMap, normalizedDenom); + const tokenPriceInfo = tokenPrices?.find((info) => info.token === normalizedDenom); + const redemptionRate = chainId && redemptionRates[chainId] ? redemptionRates[chainId].current : 1; + const qTokenPrice = tokenPriceInfo ? tokenPriceInfo.price * redemptionRate : 0; + const exp = getExponent(denom); + const normalizedAmount = shiftDigits(amount, -exp); + + return { + title: 'q' + normalizedDenom.toUpperCase(), + amount: normalizedAmount.toString(), + qTokenPrice: qTokenPrice, + chainId: chainId ?? '', + }; + }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [qbalance, APYs, redemptionRates, isLoadingAll, liquidRewards, nonNative, tokenToChainIdMap, tokenPrices, refetchAll]); const totalPortfolioValue = useMemo( () => portfolioItems.reduce((acc, item) => acc + Number(item.amount) * item.qTokenPrice, 0), @@ -125,8 +137,6 @@ const portfolioItems: PortfolioItemInterface[] = useMemo(() => { [portfolioItems, APYs], ); - - const [showRewardsClaim, setShowRewardsClaim] = useState(false); const [userClosedRewardsClaim, setUserClosedRewardsClaim] = useState(false); @@ -146,32 +156,30 @@ const portfolioItems: PortfolioItemInterface[] = useMemo(() => { // Data for the assets grid // the query return `qbalance` is an array of quicksilver staked assets held by the user // assetsData maps over the assets in qbalance and returns the name, balance, apy, native asset denom, and redemption rate. - const qtokens = useMemo(() => ['qatom', 'qosmo', 'qstars', 'qregen', 'qsomm', 'qjuno', 'qdydx'], []); - -const assetsData = useMemo(() => { - return qtokens.map((token) => { - - const baseToken = token.substring(1).toLowerCase(); - - - const asset = qbalance?.find(a => a.denom.substring(2).toLowerCase() === baseToken); - const apyAsset = qtokens.find(a => a.substring(1).toLowerCase() === baseToken); - const chainId = apyAsset ? getChainIdForToken(tokenToChainIdMap, baseToken) : undefined; - - const apy = (chainId && chainId !== 'dydx-mainnet-1' && APYs && APYs.hasOwnProperty(chainId)) ? APYs[chainId] : 0; - const redemptionRate = chainId && redemptionRates && redemptionRates[chainId] ? redemptionRates[chainId].current || 1 : 1; - const exp = apyAsset ? getExponent(apyAsset) : 0; - - return { - name: token.toUpperCase(), - balance: asset ? shiftDigits(Number(asset.amount), -exp).toString() : "0", - apy: parseFloat(((apy * 100) / 100).toFixed(4)), - native: baseToken.toUpperCase(), - redemptionRates: redemptionRate.toString(), - }; - }); -// eslint-disable-next-line react-hooks/exhaustive-deps -}, [qtokens, qbalance, tokenToChainIdMap, APYs, redemptionRates, refetchAll]); + const qtokens = useMemo(() => ['qatom', 'qosmo', 'qstars', 'qregen', 'qsomm', 'qjuno', 'qdydx', 'qsaga'], []); + + const assetsData = useMemo(() => { + return qtokens.map((token) => { + const baseToken = token.substring(1).toLowerCase(); + + const asset = qbalance?.find((a) => a.denom.substring(2).toLowerCase() === baseToken); + const apyAsset = qtokens.find((a) => a.substring(1).toLowerCase() === baseToken); + const chainId = apyAsset ? getChainIdForToken(tokenToChainIdMap, baseToken) : undefined; + + const apy = chainId && chainId !== 'dydx-mainnet-1' && APYs && APYs.hasOwnProperty(chainId) ? APYs[chainId] : 0; + const redemptionRate = chainId && redemptionRates && redemptionRates[chainId] ? redemptionRates[chainId].current || 1 : 1; + const exp = apyAsset ? getExponent(apyAsset) : 0; + + return { + name: token.toUpperCase(), + balance: asset ? shiftDigits(Number(asset.amount), -exp).toString() : '0', + apy: parseFloat(((apy * 100) / 100).toFixed(4)), + native: baseToken.toUpperCase(), + redemptionRates: redemptionRate.toString(), + }; + }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [qtokens, qbalance, tokenToChainIdMap, APYs, redemptionRates, refetchAll]); const showAssetsGrid = qbalance && qbalance.length > 0 && !qIsLoading && !qIsError; diff --git a/web-ui/public/img/networks/qsaga.svg b/web-ui/public/img/networks/qsaga.svg new file mode 100644 index 000000000..1b40f83b7 --- /dev/null +++ b/web-ui/public/img/networks/qsaga.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web-ui/public/img/networks/saga.svg b/web-ui/public/img/networks/saga.svg new file mode 100644 index 000000000..7648f719f --- /dev/null +++ b/web-ui/public/img/networks/saga.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web-ui/state/chains/prod.ts b/web-ui/state/chains/prod.ts index 4cc30a5ff..15f8dadde 100644 --- a/web-ui/state/chains/prod.ts +++ b/web-ui/state/chains/prod.ts @@ -7,6 +7,7 @@ export const ibcDenomWithdrawMapping = { qSOMM: 'qsomm', qJUNO: 'qjuno', qDYDX: 'qdydx', + qSAGA: 'qsaga' } }; @@ -18,7 +19,8 @@ export const ibcDenomWithdrawMapping = { qREGEN: 'ibc/79A676508A2ECA1021EDDC7BB9CF70CEEC9514C478DA526A5A8B3E78506C2206', qSOMM: 'ibc/EAF76AD1EEF7B16D167D87711FB26ABE881AC7D9F7E6D0CF313D5FA530417208', qJUNO: 'ibc/B4E18E61E1505C2F371B621E49B09E983F6A138F251A7B5286A6BDF739FD0D54', - qDYDX: '' + qDYDX: 'ibc/273C593E51ACE56F1F2BDB3E03A5CB81BB208B894BCAA642676A32C3454E8C27', + qSAGA: 'ibc/F2D400F2728E9DA06EAE2AFAB289931A69EDDA5A661578C66A3177EDFE3C0D13' }, umee: { qATOM: 'ibc/454725EA4029BAA99C293904336DE9A4B84E2BF7D83B9C56EE6B03E8A65FB5A1', @@ -27,7 +29,8 @@ export const ibcDenomWithdrawMapping = { qREGEN: 'ibc/16F0C7E49C2FE3A99E92A20DBCF4006B38ABC4E29F7F37829AD40F2C585BE835', qSOMM: 'ibc/ACF9DA139FE5BC8F95AC4A12B0B6D7710274DEDAC57284B881BEE1896F40642D', qJUNO: 'ibc/CA0BEF2524A37205009210EFCFB09585FBA9648C5F065FA078944A5C6704E8DC', - qDYDX: '' + qDYDX: 'ibc/41F3C94FAB3FB2D6D2B1F130A78697B07D729D1F50DA132C18F7963413A2DCF6', + qSAGA: 'ibc/9B4BDA7382D0CF8C48A9D7496449D626DDF99AF640325978B5BD1AD4A9ED274C' }, }; @@ -55,7 +58,7 @@ export const networks = [ name: 'Dydx', chainName: 'dydx', chainId: 'dydx-mainnet-1', - }, + }, { value: 'STARS', logo: '/img/networks/stargaze.svg', @@ -88,6 +91,15 @@ export const networks = [ chainName: 'juno', chainId: 'juno-1', }, + { + value: 'SAGA', + logo: '/img/networks/saga.svg', + qlogo: '/img/networks/qsaga.svg', + name: 'Saga', + chainName: 'saga', + chainId: 'ssc-1', + }, + ]; export const testNetworks = [ diff --git a/web-ui/utils/maths.ts b/web-ui/utils/maths.ts index 7063dfebd..564edfa0e 100644 --- a/web-ui/utils/maths.ts +++ b/web-ui/utils/maths.ts @@ -37,7 +37,7 @@ export const formatNumber = (num: number) => { const endIndex = decimalPlaces > 0 ? dotIndex + decimalPlaces + 1 : dotIndex; return numStr.substring(0, endIndex); }; - + if (num < 1) { return truncate(num, 3); }