diff --git a/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx b/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx index e5290cadf..fb94e8d6f 100644 --- a/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx +++ b/lib/modules/pool/PoolList/PoolListCards/PoolListCard.tsx @@ -1,5 +1,5 @@ import { Card, HStack, VStack, Text, Grid, GridItem } from '@chakra-ui/react' -import { DecoratedPoolListItem, poolTypeHash } from '../../pool.types' +import { PoolListItem, poolTypeHash } from '../../pool.types' import { fNum } from '@/lib/shared/utils/numbers' import AprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/AprTooltip' import { memo } from 'react' @@ -9,15 +9,12 @@ import { usePoolListQueryState } from '../usePoolListQueryState' import { TokenIconStack } from '@/lib/modules/tokens/TokenIconStack' interface Props { - pool: DecoratedPoolListItem - cardClickHandler?: (event: React.MouseEvent, pool: DecoratedPoolListItem) => void - cardMouseEnterHandler?: ( - event: React.MouseEvent, - pool: DecoratedPoolListItem - ) => void + pool: PoolListItem + cardClickHandler?: (event: React.MouseEvent, pool: PoolListItem) => void + cardMouseEnterHandler?: (event: React.MouseEvent, pool: PoolListItem) => void } -function PoolNameLabel({ pool }: { pool: DecoratedPoolListItem }) { +function PoolNameLabel({ pool }: { pool: PoolListItem }) { if (pool) { const displayTokens = pool.displayTokens return ( @@ -108,7 +105,7 @@ export function PoolListCard({ pool, cardClickHandler, cardMouseEnterHandler }: My Liquidity: - {toCurrency(pool.userBalance?.totalBalanceUsd || 0, { abbreviated: false })} + {toCurrency(pool.userBalance?.totalBalanceUsd || '0', { abbreviated: false })} diff --git a/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx b/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx index 740efc4c6..ea9103e5a 100644 --- a/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx +++ b/lib/modules/pool/PoolList/PoolListCards/PoolListCards.tsx @@ -5,12 +5,12 @@ import { PoolListCard } from './PoolListCard' import { Pagination } from '@/lib/shared/components/pagination/Pagination' import { usePoolListQueryState } from '../usePoolListQueryState' import { getPaginationProps } from '@/lib/shared/components/pagination/getPaginationProps' -import { DecoratedPoolListItem } from '../../pool.types' import { getPoolPath } from '../../pool.utils' import { useRouter } from 'next/navigation' +import { PoolListItem } from '../../pool.types' interface Props { - pools: DecoratedPoolListItem[] + pools: PoolListItem[] count: number loading: boolean } @@ -20,7 +20,7 @@ export function PoolListCards({ pools, count, loading }: Props) { const { pagination, setPagination } = usePoolListQueryState() const paginationProps = getPaginationProps(count, pagination, setPagination) const showPagination = pools.length && count && count > pagination.pageSize - const cardClickHandler = (event: React.MouseEvent, pool: DecoratedPoolListItem) => { + const cardClickHandler = (event: React.MouseEvent, pool: PoolListItem) => { const poolPath = getPoolPath({ id: pool.id, chain: pool.chain }) if (event.ctrlKey || event.metaKey) { @@ -32,10 +32,7 @@ export function PoolListCards({ pools, count, loading }: Props) { // Prefetch pool page on card hover, otherwise there is a significant delay // between clicking the card and the pool page loading. - const cardMouseEnterHandler = ( - event: React.MouseEvent, - pool: DecoratedPoolListItem - ) => { + const cardMouseEnterHandler = (event: React.MouseEvent, pool: PoolListItem) => { const poolPath = getPoolPath({ id: pool.id, chain: pool.chain }) router.prefetch(poolPath) } diff --git a/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx b/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx index 5a60c9c92..22439c875 100644 --- a/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx +++ b/lib/modules/pool/PoolList/PoolListTable/PoolListTable.tsx @@ -7,10 +7,10 @@ import { PoolListTableHeader } from './PoolListTableHeader' import { PoolListTableRow } from './PoolListTableRow' import { getPaginationProps } from '@/lib/shared/components/pagination/getPaginationProps' import { useBreakpoints } from '@/lib/shared/hooks/useBreakpoints' -import { DecoratedPoolListItem } from '../../pool.types' +import { PoolListItem } from '../../pool.types' interface Props { - pools: DecoratedPoolListItem[] + pools: PoolListItem[] count: number loading: boolean } @@ -35,7 +35,7 @@ export function PoolListTable({ pools, count, loading }: Props) { items={pools} loading={loading} renderTableHeader={() => } - renderTableRow={(item: DecoratedPoolListItem, index) => { + renderTableRow={(item: PoolListItem, index) => { return }} showPagination={showPagination} diff --git a/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx b/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx index 1d81778a8..ac94fc0aa 100644 --- a/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx +++ b/lib/modules/pool/PoolList/PoolListTable/PoolListTableRow.tsx @@ -1,16 +1,16 @@ import { Box, Grid, GridItem, GridProps, Text } from '@chakra-ui/react' import Link from 'next/link' import { getPoolPath } from '../../pool.utils' -import { DecoratedPoolListItem } from '../../pool.types' import AprTooltip from '@/lib/shared/components/tooltips/apr-tooltip/AprTooltip' import { memo } from 'react' import { PoolListTokensTag } from '../PoolListTokensTag' import { NetworkIcon } from '@/lib/shared/components/icons/NetworkIcon' import { useCurrency } from '@/lib/shared/hooks/useCurrency' import { usePoolListQueryState } from '../usePoolListQueryState' +import { PoolListItem } from '../../pool.types' interface Props extends GridProps { - pool: DecoratedPoolListItem + pool: PoolListItem keyValue: number } @@ -31,7 +31,7 @@ export function PoolListTableRow({ pool, keyValue, ...rest }: Props) { {userAddress && ( - {toCurrency(pool.userBalance?.totalBalanceUsd || 0, { abbreviated: false })} + {toCurrency(pool.userBalance?.totalBalanceUsd || '0', { abbreviated: false })} )} diff --git a/lib/modules/pool/PoolList/usePoolList.tsx b/lib/modules/pool/PoolList/usePoolList.tsx index bbe5e4c66..6df8c20d0 100644 --- a/lib/modules/pool/PoolList/usePoolList.tsx +++ b/lib/modules/pool/PoolList/usePoolList.tsx @@ -10,7 +10,6 @@ import { useQuery } from '@apollo/experimental-nextjs-app-support/ssr' import { usePoolListQueryState } from './usePoolListQueryState' import { useMandatoryContext } from '@/lib/shared/utils/contexts' import { useSeedApolloCache } from '@/lib/shared/hooks/useSeedApolloCache' -import { DecoratedPoolListItem } from '../pool.types' export function _usePoolList() { const { queryVariables } = usePoolListQueryState() @@ -20,24 +19,7 @@ export function _usePoolList() { { variables: queryVariables, notifyOnNetworkStatusChange: true } ) - let pools: DecoratedPoolListItem[] - pools = loading && previousData ? previousData.pools : data?.pools || [] - - pools = pools.map(pool => { - if (pool.userBalance) { - const bptPrice = - parseFloat(pool.dynamicData.totalLiquidity) / parseFloat(pool.dynamicData.totalShares) - return { - ...pool, - userBalance: { - ...pool.userBalance, - totalBalanceUsd: `${bptPrice * parseFloat(pool.userBalance.totalBalance)}`, - }, - } - } else { - return pool - } - }) + const pools = loading && previousData ? previousData.pools : data?.pools || [] return { pools, diff --git a/lib/modules/pool/pool.types.ts b/lib/modules/pool/pool.types.ts index 9bd39c04a..04f455126 100644 --- a/lib/modules/pool/pool.types.ts +++ b/lib/modules/pool/pool.types.ts @@ -6,9 +6,7 @@ import { GqlPoolMinimalType, GqlPoolOrderBy, GqlPoolOrderDirection, - GqlPoolUserBalance, } from '@/lib/shared/services/api/generated/graphql' -import { HumanAmount } from '@balancer/sdk' import { parseAsArrayOf, parseAsInteger, @@ -20,13 +18,6 @@ export type PoolList = GetPoolsQuery['pools'] export type PoolListItem = PoolList[0] -interface GqlPoolUserBalanceExtended extends GqlPoolUserBalance { - totalBalanceUsd?: HumanAmount -} -export interface DecoratedPoolListItem extends PoolListItem { - userBalance?: GqlPoolUserBalanceExtended | null -} - export enum PoolVariant { v2 = 'v2', v3 = 'v3', diff --git a/lib/modules/pool/usePoolEnrichWithOnChainData.tsx b/lib/modules/pool/usePoolEnrichWithOnChainData.tsx index 48fe78a2b..9a361b6d5 100644 --- a/lib/modules/pool/usePoolEnrichWithOnChainData.tsx +++ b/lib/modules/pool/usePoolEnrichWithOnChainData.tsx @@ -149,7 +149,7 @@ async function getBalanceDataForPool({ pool.allTokens.map(token => token) const poolIds: string[] = [pool.id] const calls: { poolId: string; type: 'balances' | 'supply'; call: ContractFunctionConfig }[] = [ - getSupplyCall(pool), + getSupplyCall(pool as GqlPoolUnion), getBalancesCall(pool.id, vaultV2Address), ] diff --git a/lib/shared/services/api/generated/gql.ts b/lib/shared/services/api/generated/gql.ts index 8dfd9237b..756e94efb 100644 --- a/lib/shared/services/api/generated/gql.ts +++ b/lib/shared/services/api/generated/gql.ts @@ -17,7 +17,7 @@ const documents = { types.GetAppGlobalPollingDataDocument, 'query GetPool($id: String!) {\n pool: poolGetPool(id: $id) {\n id\n address\n name\n version\n owner\n decimals\n factory\n symbol\n createTime\n type\n chain\n dynamicData {\n poolId\n swapEnabled\n totalLiquidity\n totalLiquidity24hAgo\n totalShares\n totalShares24hAgo\n fees24h\n swapFee\n volume24h\n fees48h\n volume48h\n lifetimeVolume\n lifetimeSwapFees\n holdersCount\n swapsCount\n sharePriceAth\n sharePriceAthTimestamp\n sharePriceAtl\n sharePriceAtlTimestamp\n totalLiquidityAth\n totalLiquidityAthTimestamp\n totalLiquidityAtl\n totalLiquidityAtlTimestamp\n volume24hAth\n volume24hAthTimestamp\n volume24hAtl\n volume24hAtlTimestamp\n fees24hAth\n fees24hAthTimestamp\n fees24hAtl\n fees24hAtlTimestamp\n yieldCapture24h\n yieldCapture48h\n apr {\n hasRewardApr\n thirdPartyApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n nativeRewardApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n swapApr\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n items {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n subItems {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n }\n }\n }\n }\n allTokens {\n id\n address\n name\n symbol\n decimals\n isNested\n isPhantomBpt\n isMainToken\n }\n displayTokens {\n id\n address\n name\n weight\n symbol\n nestedTokens {\n id\n address\n name\n weight\n symbol\n }\n }\n staking {\n id\n type\n chain\n address\n gauge {\n id\n gaugeAddress\n version\n status\n workingSupply\n otherGauges {\n gaugeAddress\n version\n status\n id\n rewards {\n id\n tokenAddress\n rewardPerSecond\n }\n }\n rewards {\n id\n rewardPerSecond\n tokenAddress\n }\n }\n }\n investConfig {\n singleAssetEnabled\n proportionalEnabled\n options {\n poolTokenIndex\n poolTokenAddress\n tokenOptions {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n withdrawConfig {\n singleAssetEnabled\n proportionalEnabled\n options {\n poolTokenIndex\n poolTokenAddress\n tokenOptions {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n ... on GqlPoolWeighted {\n nestingType\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n ... on GqlPoolTokenLinear {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n mainTokenBalance\n wrappedTokenBalance\n totalMainTokenBalance\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n wrappedIndex\n mainIndex\n upperTarget\n lowerTarget\n totalShares\n totalLiquidity\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n ... on GqlPoolTokenPhantomStable {\n id\n index\n name\n symbol\n balance\n address\n weight\n priceRate\n decimals\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n totalShares\n totalLiquidity\n nestingType\n swapFee\n amp\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n ... on GqlPoolTokenLinear {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n mainTokenBalance\n wrappedTokenBalance\n totalMainTokenBalance\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n wrappedIndex\n mainIndex\n upperTarget\n lowerTarget\n totalShares\n totalLiquidity\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n }\n }\n }\n }\n }\n ... on GqlPoolStable {\n amp\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n ... on GqlPoolMetaStable {\n amp\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n ... on GqlPoolElement {\n unitSeconds\n principalToken\n baseToken\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n ... on GqlPoolPhantomStable {\n amp\n nestingType\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n ... on GqlPoolTokenLinear {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n mainTokenBalance\n wrappedTokenBalance\n totalMainTokenBalance\n totalBalance\n pool {\n id\n name\n type\n version\n symbol\n address\n owner\n factory\n createTime\n wrappedIndex\n mainIndex\n upperTarget\n lowerTarget\n totalShares\n totalLiquidity\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n ... on GqlPoolTokenPhantomStable {\n id\n index\n name\n symbol\n balance\n address\n weight\n priceRate\n decimals\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n totalShares\n totalLiquidity\n nestingType\n swapFee\n amp\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n ... on GqlPoolTokenLinear {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n mainTokenBalance\n wrappedTokenBalance\n totalMainTokenBalance\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n wrappedIndex\n mainIndex\n upperTarget\n lowerTarget\n totalShares\n totalLiquidity\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n }\n }\n }\n }\n }\n ... on GqlPoolLinear {\n mainIndex\n wrappedIndex\n lowerTarget\n upperTarget\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n ... on GqlPoolLiquidityBootstrapping {\n name\n nestingType\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n ... on GqlPoolTokenLinear {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n mainTokenBalance\n wrappedTokenBalance\n totalMainTokenBalance\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n wrappedIndex\n mainIndex\n upperTarget\n lowerTarget\n totalShares\n totalLiquidity\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n ... on GqlPoolTokenPhantomStable {\n id\n index\n name\n symbol\n balance\n address\n weight\n priceRate\n decimals\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n totalShares\n totalLiquidity\n nestingType\n swapFee\n amp\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n ... on GqlPoolTokenLinear {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n mainTokenBalance\n wrappedTokenBalance\n totalMainTokenBalance\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n wrappedIndex\n mainIndex\n upperTarget\n lowerTarget\n totalShares\n totalLiquidity\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n }\n }\n }\n }\n }\n ... on GqlPoolGyro {\n alpha\n beta\n type\n nestingType\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n ... on GqlPoolTokenLinear {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n mainTokenBalance\n wrappedTokenBalance\n totalMainTokenBalance\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n wrappedIndex\n mainIndex\n upperTarget\n lowerTarget\n totalShares\n totalLiquidity\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n ... on GqlPoolTokenPhantomStable {\n id\n index\n name\n symbol\n balance\n address\n weight\n priceRate\n decimals\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n totalShares\n totalLiquidity\n nestingType\n swapFee\n amp\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n ... on GqlPoolTokenLinear {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n mainTokenBalance\n wrappedTokenBalance\n totalMainTokenBalance\n totalBalance\n pool {\n id\n type\n version\n name\n symbol\n address\n owner\n factory\n createTime\n wrappedIndex\n mainIndex\n upperTarget\n lowerTarget\n totalShares\n totalLiquidity\n bptPriceRate\n tokens {\n ... on GqlPoolToken {\n id\n index\n name\n symbol\n balance\n address\n priceRate\n decimals\n weight\n totalBalance\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\nquery GetPoolSwaps($first: Int, $skip: Int, $where: GqlPoolSwapFilter) {\n swaps: poolGetSwaps(first: $first, skip: $skip, where: $where) {\n id\n poolId\n timestamp\n tokenAmountIn\n tokenAmountOut\n tokenIn\n tokenOut\n tx\n userAddress\n valueUSD\n }\n}\n\nquery GetPoolJoinExits($first: Int, $skip: Int, $poolId: String!) {\n joinExits: poolGetJoinExits(\n first: $first\n skip: $skip\n where: {poolIdIn: [$poolId]}\n ) {\n id\n timestamp\n tx\n type\n poolId\n valueUSD\n amounts {\n address\n amount\n }\n }\n}\n\nquery GetPoolBptPriceChartData($address: String!, $range: GqlTokenChartDataRange!) {\n prices: tokenGetPriceChartData(address: $address, range: $range) {\n id\n price\n timestamp\n }\n}\n\nquery GetPoolUserJoinExits($first: Int, $skip: Int, $poolId: String!) {\n joinExits: userGetPoolJoinExits(poolId: $poolId, first: $first, skip: $skip) {\n id\n timestamp\n tx\n type\n poolId\n valueUSD\n amounts {\n address\n amount\n }\n }\n}\n\nquery GetUserSwaps($first: Int, $skip: Int, $poolId: String!) {\n swaps: userGetSwaps(first: $first, skip: $skip, poolId: $poolId) {\n id\n poolId\n timestamp\n tokenAmountIn\n tokenAmountOut\n tokenIn\n tokenOut\n tx\n valueUSD\n }\n}\n\nquery GetPoolSnapshots($poolId: String!, $range: GqlPoolSnapshotDataRange!) {\n snapshots: poolGetSnapshots(id: $poolId, range: $range) {\n id\n timestamp\n totalLiquidity\n volume24h\n fees24h\n sharePrice\n }\n}\n\nquery GetPoolTokensDynamicData($addresses: [String!]!) {\n staticData: tokenGetTokensData(addresses: $addresses) {\n id\n tokenAddress\n description\n discordUrl\n telegramUrl\n twitterUsername\n websiteUrl\n }\n dynamicData: tokenGetTokensDynamicData(addresses: $addresses) {\n ...GqlTokenDynamicData\n }\n}\n\nquery GetPoolJoinsExitsSwaps($first: Int, $skip: Int, $poolId: String!, $chainId: GqlChain!) {\n swaps: poolGetSwaps(\n first: $first\n skip: $skip\n where: {poolIdIn: [$poolId], chainIn: [$chainId]}\n ) {\n id\n poolId\n timestamp\n tokenAmountIn\n tokenAmountOut\n tokenIn\n tokenOut\n tx\n userAddress\n valueUSD\n }\n joinExits: poolGetJoinExits(\n first: $first\n skip: $skip\n where: {poolIdIn: [$poolId], chainIn: [$chainId]}\n ) {\n id\n timestamp\n tx\n type\n poolId\n valueUSD\n amounts {\n address\n amount\n }\n }\n}': types.GetPoolDocument, - 'query GetPools($first: Int, $skip: Int, $orderBy: GqlPoolOrderBy, $orderDirection: GqlPoolOrderDirection, $where: GqlPoolFilter, $textSearch: String) {\n pools: poolGetPools(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n ) {\n address\n chain\n createTime\n decimals\n displayTokens {\n id\n address\n name\n weight\n symbol\n nestedTokens {\n id\n address\n name\n weight\n symbol\n }\n }\n dynamicData {\n totalLiquidity\n lifetimeVolume\n lifetimeSwapFees\n volume24h\n fees24h\n holdersCount\n swapFee\n swapsCount\n totalShares\n apr {\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n hasRewardApr\n thirdPartyApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n nativeRewardApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n swapApr\n items {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n subItems {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n }\n }\n }\n }\n factory\n id\n name\n owner\n symbol\n type\n userBalance {\n totalBalance\n stakedBalance\n walletBalance\n }\n }\n count: poolGetPoolsCount(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n )\n}': + 'query GetPools($first: Int, $skip: Int, $orderBy: GqlPoolOrderBy, $orderDirection: GqlPoolOrderDirection, $where: GqlPoolFilter, $textSearch: String) {\n pools: poolGetPools(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n ) {\n address\n chain\n createTime\n decimals\n displayTokens {\n id\n address\n name\n weight\n symbol\n nestedTokens {\n id\n address\n name\n weight\n symbol\n }\n }\n dynamicData {\n totalLiquidity\n lifetimeVolume\n lifetimeSwapFees\n volume24h\n fees24h\n holdersCount\n swapFee\n swapsCount\n totalShares\n apr {\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n hasRewardApr\n thirdPartyApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n nativeRewardApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n swapApr\n items {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n subItems {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n }\n }\n }\n }\n factory\n id\n name\n owner\n symbol\n type\n userBalance {\n totalBalance\n totalBalanceUsd\n stakedBalance\n walletBalance\n }\n }\n count: poolGetPoolsCount(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n )\n}': types.GetPoolsDocument, 'query GetSorSwaps($tokenIn: String!, $tokenOut: String!, $swapType: GqlSorSwapType!, $swapAmount: BigDecimal!, $swapOptions: GqlSorSwapOptionsInput!) {\n swaps: sorGetSwaps(\n tokenIn: $tokenIn\n tokenOut: $tokenOut\n swapType: $swapType\n swapAmount: $swapAmount\n swapOptions: $swapOptions\n ) {\n ...GqlSorGetSwapsResponse\n }\n}\n\nquery GetTokenRelativePriceChartData($tokenIn: String!, $tokenOut: String!, $range: GqlTokenChartDataRange!) {\n prices: tokenGetRelativePriceChartData(\n tokenIn: $tokenIn\n tokenOut: $tokenOut\n range: $range\n ) {\n id\n price\n timestamp\n }\n}\n\nfragment GqlSorGetSwapsResponse on GqlSorGetSwapsResponse {\n tokenIn\n tokenOut\n swapAmount\n tokenAddresses\n swapType\n marketSp\n swaps {\n poolId\n amount\n userData\n assetInIndex\n assetOutIndex\n }\n returnAmount\n returnAmountScaled\n returnAmountFromSwaps\n returnAmountConsideringFees\n swapAmount\n swapAmountScaled\n swapAmountForSwaps\n tokenInAmount\n tokenOutAmount\n effectivePrice\n effectivePriceReversed\n priceImpact\n routes {\n ...GqlSorSwapRoute\n }\n}\n\nfragment GqlSorSwapRoute on GqlSorSwapRoute {\n tokenIn\n tokenOut\n tokenInAmount\n tokenOutAmount\n share\n hops {\n ...GqlSorSwapRouteHop\n }\n}\n\nfragment GqlSorSwapRouteHop on GqlSorSwapRouteHop {\n poolId\n pool {\n id\n name\n type\n symbol\n dynamicData {\n totalLiquidity\n }\n allTokens {\n address\n isNested\n isPhantomBpt\n weight\n }\n }\n tokenIn\n tokenOut\n tokenInAmount\n tokenOutAmount\n}\n\nquery GetTradeSelectedTokenData($tokenIn: String!, $tokenOut: String!) {\n tokenInData: tokenGetTokenData(address: $tokenIn) {\n id\n tokenAddress\n description\n discordUrl\n telegramUrl\n twitterUsername\n }\n tokenOutData: tokenGetTokenData(address: $tokenOut) {\n id\n tokenAddress\n description\n discordUrl\n telegramUrl\n twitterUsername\n }\n tokenInDynamicData: tokenGetTokenDynamicData(address: $tokenIn) {\n ...GqlTokenDynamicData\n }\n tokenOutDynamicData: tokenGetTokenDynamicData(address: $tokenOut) {\n ...GqlTokenDynamicData\n }\n}\n\nfragment GqlTokenDynamicData on GqlTokenDynamicData {\n id\n tokenAddress\n ath\n atl\n marketCap\n fdv\n priceChange24h\n priceChangePercent24h\n priceChangePercent7d\n priceChangePercent14d\n priceChangePercent30d\n high24h\n low24h\n updatedAt\n}': types.GetSorSwapsDocument, @@ -53,8 +53,8 @@ export function graphql( * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ export function graphql( - source: 'query GetPools($first: Int, $skip: Int, $orderBy: GqlPoolOrderBy, $orderDirection: GqlPoolOrderDirection, $where: GqlPoolFilter, $textSearch: String) {\n pools: poolGetPools(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n ) {\n address\n chain\n createTime\n decimals\n displayTokens {\n id\n address\n name\n weight\n symbol\n nestedTokens {\n id\n address\n name\n weight\n symbol\n }\n }\n dynamicData {\n totalLiquidity\n lifetimeVolume\n lifetimeSwapFees\n volume24h\n fees24h\n holdersCount\n swapFee\n swapsCount\n totalShares\n apr {\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n hasRewardApr\n thirdPartyApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n nativeRewardApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n swapApr\n items {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n subItems {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n }\n }\n }\n }\n factory\n id\n name\n owner\n symbol\n type\n userBalance {\n totalBalance\n stakedBalance\n walletBalance\n }\n }\n count: poolGetPoolsCount(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n )\n}' -): (typeof documents)['query GetPools($first: Int, $skip: Int, $orderBy: GqlPoolOrderBy, $orderDirection: GqlPoolOrderDirection, $where: GqlPoolFilter, $textSearch: String) {\n pools: poolGetPools(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n ) {\n address\n chain\n createTime\n decimals\n displayTokens {\n id\n address\n name\n weight\n symbol\n nestedTokens {\n id\n address\n name\n weight\n symbol\n }\n }\n dynamicData {\n totalLiquidity\n lifetimeVolume\n lifetimeSwapFees\n volume24h\n fees24h\n holdersCount\n swapFee\n swapsCount\n totalShares\n apr {\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n hasRewardApr\n thirdPartyApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n nativeRewardApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n swapApr\n items {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n subItems {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n }\n }\n }\n }\n factory\n id\n name\n owner\n symbol\n type\n userBalance {\n totalBalance\n stakedBalance\n walletBalance\n }\n }\n count: poolGetPoolsCount(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n )\n}'] + source: 'query GetPools($first: Int, $skip: Int, $orderBy: GqlPoolOrderBy, $orderDirection: GqlPoolOrderDirection, $where: GqlPoolFilter, $textSearch: String) {\n pools: poolGetPools(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n ) {\n address\n chain\n createTime\n decimals\n displayTokens {\n id\n address\n name\n weight\n symbol\n nestedTokens {\n id\n address\n name\n weight\n symbol\n }\n }\n dynamicData {\n totalLiquidity\n lifetimeVolume\n lifetimeSwapFees\n volume24h\n fees24h\n holdersCount\n swapFee\n swapsCount\n totalShares\n apr {\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n hasRewardApr\n thirdPartyApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n nativeRewardApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n swapApr\n items {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n subItems {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n }\n }\n }\n }\n factory\n id\n name\n owner\n symbol\n type\n userBalance {\n totalBalance\n totalBalanceUsd\n stakedBalance\n walletBalance\n }\n }\n count: poolGetPoolsCount(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n )\n}' +): (typeof documents)['query GetPools($first: Int, $skip: Int, $orderBy: GqlPoolOrderBy, $orderDirection: GqlPoolOrderDirection, $where: GqlPoolFilter, $textSearch: String) {\n pools: poolGetPools(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n ) {\n address\n chain\n createTime\n decimals\n displayTokens {\n id\n address\n name\n weight\n symbol\n nestedTokens {\n id\n address\n name\n weight\n symbol\n }\n }\n dynamicData {\n totalLiquidity\n lifetimeVolume\n lifetimeSwapFees\n volume24h\n fees24h\n holdersCount\n swapFee\n swapsCount\n totalShares\n apr {\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n hasRewardApr\n thirdPartyApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n nativeRewardApr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n swapApr\n items {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n subItems {\n id\n title\n apr {\n ... on GqlPoolAprTotal {\n total\n }\n ... on GqlPoolAprRange {\n min\n max\n }\n }\n }\n }\n }\n }\n factory\n id\n name\n owner\n symbol\n type\n userBalance {\n totalBalance\n totalBalanceUsd\n stakedBalance\n walletBalance\n }\n }\n count: poolGetPoolsCount(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: $where\n textSearch: $textSearch\n )\n}'] /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ diff --git a/lib/shared/services/api/generated/graphql.ts b/lib/shared/services/api/generated/graphql.ts index 241deac33..96a6964d7 100644 --- a/lib/shared/services/api/generated/graphql.ts +++ b/lib/shared/services/api/generated/graphql.ts @@ -4221,6 +4221,7 @@ export type GetPoolsQuery = { userBalance?: { __typename: 'GqlPoolUserBalance' totalBalance: string + totalBalanceUsd: number stakedBalance: string walletBalance: string } | null @@ -9094,6 +9095,7 @@ export const GetPoolsDocument = { kind: 'SelectionSet', selections: [ { kind: 'Field', name: { kind: 'Name', value: 'totalBalance' } }, + { kind: 'Field', name: { kind: 'Name', value: 'totalBalanceUsd' } }, { kind: 'Field', name: { kind: 'Name', value: 'stakedBalance' } }, { kind: 'Field', name: { kind: 'Name', value: 'walletBalance' } }, ], diff --git a/lib/shared/services/api/pools.graphql b/lib/shared/services/api/pools.graphql index eeeec4026..2135cc681 100644 --- a/lib/shared/services/api/pools.graphql +++ b/lib/shared/services/api/pools.graphql @@ -108,6 +108,7 @@ query GetPools( type userBalance { totalBalance + totalBalanceUsd stakedBalance walletBalance }