{!loading && (
- {poolReserve.symbol}
+ {poolReserve.underlyingToken.symbol}
)}
@@ -183,7 +194,7 @@ export const ReserveTopDetailsWrapper = ({ underlyingAsset }: ReserveTopDetailsP
{!downToSM && (
<>
{poolReserve.symbol}}
+ title={!loading && {poolReserve.underlyingToken.symbol}}
withoutIconWrapper
icon={}
loading={loading}
diff --git a/src/modules/reserve-overview/SupplyInfo.tsx b/src/modules/reserve-overview/SupplyInfo.tsx
index 47c682eb4a..e17dfaac04 100644
--- a/src/modules/reserve-overview/SupplyInfo.tsx
+++ b/src/modules/reserve-overview/SupplyInfo.tsx
@@ -5,6 +5,7 @@ import CheckRoundedIcon from '@mui/icons-material/CheckRounded';
import { AlertTitle, Box, Typography } from '@mui/material';
import { CapsCircularStatus } from 'src/components/caps/CapsCircularStatus';
import { DebtCeilingStatus } from 'src/components/caps/DebtCeilingStatus';
+import { mapAaveProtocolIncentives } from 'src/components/incentives/incentives.helper';
import { IncentivesCard } from 'src/components/incentives/IncentivesCard';
import { LiquidationPenaltyTooltip } from 'src/components/infoTooltips/LiquidationPenaltyTooltip';
import { LiquidationThresholdTooltip } from 'src/components/infoTooltips/LiquidationThresholdTooltip';
@@ -15,8 +16,8 @@ import { Warning } from 'src/components/primitives/Warning';
import { ReserveOverviewBox } from 'src/components/ReserveOverviewBox';
import { ReserveSubheader } from 'src/components/ReserveSubheader';
import { TextWithTooltip } from 'src/components/TextWithTooltip';
-import { ComputedReserveData } from 'src/hooks/app-data-provider/useAppDataProvider';
-import { AssetCapHookData } from 'src/hooks/useAssetCaps';
+import { ReserveWithId } from 'src/hooks/app-data-provider/useAppDataProvider';
+import { AssetCapHookData } from 'src/hooks/useAssetCapsSDK';
import { GENERAL } from 'src/utils/events';
import { MarketDataType } from 'src/utils/marketsAndNetworksConfig';
@@ -24,7 +25,7 @@ import { SupplyApyGraph } from './graphs/ApyGraphContainer';
import { PanelItem } from './ReservePanels';
interface SupplyInfoProps {
- reserve: ComputedReserveData;
+ reserve: ReserveWithId;
currentMarketData: MarketDataType;
renderCharts: boolean;
showSupplyCapStatus: boolean;
@@ -40,6 +41,7 @@ export const SupplyInfo = ({
supplyCap,
debtCeiling,
}: SupplyInfoProps) => {
+ const supplyProtocolIncentives = mapAaveProtocolIncentives(reserve.incentives, 'supply');
return (
{' '}
- {reserve.symbol} (
+ {reserve.underlyingToken.symbol} (
@@ -110,7 +112,7 @@ export const SupplyInfo = ({
}
>
-
+
of
-
+
-
+
of
-
+
>
@@ -144,38 +149,41 @@ export const SupplyInfo = ({
}
>
-
-
+
+
)}
APY}>
- {reserve.unbacked && reserve.unbacked !== '0' && (
+ {/* //! Doesnt exist in sdk */}
+ {/* {reserve.unbacked && reserve.unbacked !== '0' && (
Unbacked}>
- )}
+ )} */}
- {renderCharts && (reserve.borrowingEnabled || Number(reserve.totalDebt) > 0) && (
-
- )}
+ {renderCharts &&
+ (reserve.borrowInfo?.borrowingState === 'ENABLED' ||
+ Number(reserve.borrowInfo?.total.amount.value) > 0) && (
+
+ )}
- {reserve.isIsolated ? (
+ {reserve.isolationModeConfig?.canBeCollateral ? (
Collateral usage
@@ -194,7 +202,7 @@ export const SupplyInfo = ({
- ) : reserve.reserveLiquidationThreshold !== '0' ? (
+ ) : reserve.supplyInfo.liquidationThreshold.value !== '0' ? (
)}
- {reserve.reserveLiquidationThreshold !== '0' && (
+ {reserve.supplyInfo.liquidationThreshold.value !== '0' && (
- {reserve.isIsolated && (
+ {reserve.isolationModeConfig?.canBeCollateral && (
)}
)}
- {reserve.symbol == 'stETH' && (
+ {reserve.underlyingToken.symbol == 'stETH' && (
diff --git a/src/modules/reserve-overview/TokenLinkDropdown.tsx b/src/modules/reserve-overview/TokenLinkDropdown.tsx
index 8eb62baab8..3ce224b543 100644
--- a/src/modules/reserve-overview/TokenLinkDropdown.tsx
+++ b/src/modules/reserve-overview/TokenLinkDropdown.tsx
@@ -5,14 +5,14 @@ import * as React from 'react';
import { useState } from 'react';
import { CircleIcon } from 'src/components/CircleIcon';
import { TokenIcon } from 'src/components/primitives/TokenIcon';
-import { ComputedReserveData } from 'src/hooks/app-data-provider/useAppDataProvider';
+import { ReserveWithId } from 'src/hooks/app-data-provider/useAppDataProvider';
import { useRootStore } from 'src/store/root';
import { useShallow } from 'zustand/shallow';
import { RESERVE_DETAILS } from '../../utils/events';
interface TokenLinkDropdownProps {
- poolReserve: ComputedReserveData;
+ poolReserve: ReserveWithId;
downToSM: boolean;
hideAToken?: boolean;
hideVariableDebtToken?: boolean;
@@ -33,11 +33,11 @@ export const TokenLinkDropdown = ({
const handleClick = (event: React.MouseEvent) => {
trackEvent(RESERVE_DETAILS.RESERVE_TOKENS_DROPDOWN, {
- assetName: poolReserve.name,
- asset: poolReserve.underlyingAsset,
- aToken: poolReserve.aTokenAddress,
+ assetName: poolReserve.underlyingToken.name,
+ asset: poolReserve.underlyingToken.address,
+ aToken: poolReserve.aToken.address,
market: currentMarket,
- variableDebtToken: poolReserve.variableDebtTokenAddress,
+ variableDebtToken: poolReserve.vToken.address,
});
setAnchorEl(event.currentTarget);
};
@@ -51,7 +51,8 @@ export const TokenLinkDropdown = ({
const showVariableDebtToken =
!hideVariableDebtToken &&
- (poolReserve.borrowingEnabled || Number(poolReserve.totalVariableDebt) > 0);
+ (poolReserve.borrowInfo?.borrowingState === 'ENABLED' ||
+ Number(poolReserve.borrowInfo?.total.amount.value) > 0);
return (
<>
@@ -92,23 +93,23 @@ export const TokenLinkDropdown = ({
onClick={() => {
trackEvent(RESERVE_DETAILS.RESERVE_TOKEN_ACTIONS, {
type: 'Underlying Token',
- assetName: poolReserve.name,
- asset: poolReserve.underlyingAsset,
- aToken: poolReserve.aTokenAddress,
+ assetName: poolReserve.underlyingToken.name,
+ asset: poolReserve.underlyingToken.address,
+ aToken: poolReserve.aToken.address,
market: currentMarket,
- variableDebtToken: poolReserve.variableDebtTokenAddress,
+ variableDebtToken: poolReserve.vToken.address,
});
}}
component="a"
href={currentNetworkConfig.explorerLinkBuilder({
- address: poolReserve?.underlyingAsset,
+ address: poolReserve?.underlyingToken.address.toLowerCase(),
})}
target="_blank"
divider={showVariableDebtToken}
>
-
+
- {poolReserve.symbol}
+ {poolReserve.underlyingToken.symbol}
@@ -125,22 +126,26 @@ export const TokenLinkDropdown = ({
onClick={() => {
trackEvent(RESERVE_DETAILS.RESERVE_TOKEN_ACTIONS, {
type: 'aToken',
- assetName: poolReserve.name,
- asset: poolReserve.underlyingAsset,
- aToken: poolReserve.aTokenAddress,
+ assetName: poolReserve.underlyingToken.name,
+ asset: poolReserve.underlyingToken.address,
+ aToken: poolReserve.aToken.address,
market: currentMarket,
- variableDebtToken: poolReserve.variableDebtTokenAddress,
+ variableDebtToken: poolReserve.vToken.address,
});
}}
href={currentNetworkConfig.explorerLinkBuilder({
- address: poolReserve?.aTokenAddress,
+ address: poolReserve?.aToken.address.toLocaleLowerCase(),
})}
target="_blank"
divider={showVariableDebtToken}
>
-
+
- {'a' + poolReserve.symbol}
+ {poolReserve.aToken.symbol}
@@ -157,23 +162,27 @@ export const TokenLinkDropdown = ({
)}
diff --git a/src/modules/reserve-overview/graphs/InterestRateModelGraphContainer.tsx b/src/modules/reserve-overview/graphs/InterestRateModelGraphContainer.tsx
index ba5d9b8247..b59de97729 100644
--- a/src/modules/reserve-overview/graphs/InterestRateModelGraphContainer.tsx
+++ b/src/modules/reserve-overview/graphs/InterestRateModelGraphContainer.tsx
@@ -1,12 +1,12 @@
import { Box } from '@mui/material';
import { ParentSize } from '@visx/responsive';
-import type { ComputedReserveData } from 'src/hooks/app-data-provider/useAppDataProvider';
+import type { ReserveWithId } from 'src/hooks/app-data-provider/useAppDataProvider';
import { GraphLegend } from './GraphLegend';
import { InterestRateModelGraph } from './InterestRateModelGraph';
type InteresetRateModelGraphContainerProps = {
- reserve: ComputedReserveData;
+ reserve: ReserveWithId;
};
export type Field = 'variableBorrowRate' | 'utilizationRate';
@@ -41,13 +41,13 @@ export const InterestRateModelGraphContainer = ({
height={CHART_HEIGHT}
fields={fields}
reserve={{
- baseVariableBorrowRate: reserve.baseVariableBorrowRate,
- optimalUsageRatio: reserve.optimalUsageRatio,
- utilizationRate: reserve.borrowUsageRatio,
- variableRateSlope1: reserve.variableRateSlope1,
- variableRateSlope2: reserve.variableRateSlope2,
- totalLiquidityUSD: reserve.totalLiquidityUSD,
- totalDebtUSD: reserve.totalDebtUSD,
+ baseVariableBorrowRate: String(reserve.borrowInfo?.reserveFactor.raw),
+ optimalUsageRatio: String(reserve.borrowInfo?.optimalUsageRate.raw),
+ utilizationRate: String(reserve.borrowInfo?.utilizationRate.value),
+ variableRateSlope1: String(reserve.borrowInfo?.variableRateSlope1.raw),
+ variableRateSlope2: String(reserve.borrowInfo?.variableRateSlope2.raw),
+ totalLiquidityUSD: reserve.size.usd,
+ totalDebtUSD: String(reserve.borrowInfo?.total.usd),
}}
/>
)}
diff --git a/src/modules/sGho/SGhoHeader.tsx b/src/modules/sGho/SGhoHeader.tsx
index b4bb7880e8..bc01b85230 100644
--- a/src/modules/sGho/SGhoHeader.tsx
+++ b/src/modules/sGho/SGhoHeader.tsx
@@ -100,7 +100,7 @@ const SGhoHeaderUserDetails = ({
stkGho: StakeTokenFormatted;
}) => {
const { data: stakeAPR, isLoading: isLoadingStakeAPR } = useStakeTokenAPR();
- const { reserves } = useAppDataContext();
+ const { supplyReserves } = useAppDataContext();
const {
addERC20Token,
@@ -108,7 +108,7 @@ const SGhoHeaderUserDetails = ({
chainId: connectedChainId,
currentAccount,
} = useWeb3Context();
- const poolReserve = reserves.find((reserve) => reserve.symbol === 'GHO');
+ const poolReserve = supplyReserves.find((reserve) => reserve.underlyingToken.symbol === 'GHO');
const theme = useTheme();
const [currentChainId] = useRootStore(useShallow((state) => [state.currentChainId]));
diff --git a/yarn.lock b/yarn.lock
index 5048795d4a..3a38d51ff7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -15,13 +15,14 @@
"@gql.tada/internal" "^1.0.0"
graphql "^15.5.0 || ^16.0.0 || ^17.0.0"
-"@aave/client@0.6.1":
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/@aave/client/-/client-0.6.1.tgz#8d4f5fdeaaaf2499bcbe9dfe8612c1804cc7cd6a"
- integrity sha512-4B6MGm02jHgO1qSQtF/SHeGmNrCbnDXLwQI5WBImjR2DBCE51BNuqa/cl1kRd47XQDypLBaRiCsXCM11vfLzOA==
+"@aave/client@0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@aave/client/-/client-0.7.0.tgz#f525c785f115ebf5746b2082687417215d816c42"
+ integrity sha512-eyWJ6o0dWAOXojVOeg7ebP+wtsU04OafIC8vTAsKL+atzkhe9Tpc1g8OyUe+9gOSzJq2FNw+WN9XS2AP687EBg==
dependencies:
- "@aave/graphql" "0.6.1"
- "@aave/types" "0.1.1"
+ "@aave/core" "0.1.0"
+ "@aave/graphql" "0.7.0"
+ "@aave/types" "0.2.0"
"@urql/core" "^5.2.0"
graphql "^16.11.0"
@@ -32,12 +33,21 @@
dependencies:
isomorphic-unfetch "^3.1.0"
-"@aave/graphql@0.6.1":
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/@aave/graphql/-/graphql-0.6.1.tgz#c82feddfc4fe87eb858d67c149c85f802a447179"
- integrity sha512-1eYvzXILPYUdUwtTTOHqVJ1HiTg5nNpldohk/0nmLSf84/AGHVC5Qsl5xKA/JMkh8wsQh2opKsNwuFgAcuVbfw==
+"@aave/core@0.1.0":
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/@aave/core/-/core-0.1.0.tgz#9a4e2bed9b10db2d5ba1d576cc228753d7534882"
+ integrity sha512-c+QsD/XO7y1pr6hGqufWAbAVI5w2E4s8IzEI545HbWa+Qqe4EhfRZ67P+yXBayfjUROU33AgIuI0Fq+7qMdHMA==
dependencies:
- "@aave/types" "0.1.1"
+ "@aave/types" "0.2.0"
+ "@urql/core" "^5.2.0"
+ graphql "^16.11.0"
+
+"@aave/graphql@0.7.0", "@aave/graphql@^0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@aave/graphql/-/graphql-0.7.0.tgz#4f91e3d7ef9061d19dddc71a3896eb7e61ac801d"
+ integrity sha512-5HqILlYzeLYb0KVelrbWMZ/O8JfvKOC2cg0QSdKjSlolA9iRtZ0VYiI/lVjiVliwAfUFxTZi7qWh934sDR0bvA==
+ dependencies:
+ "@aave/types" "0.2.0"
gql.tada "^1.8.13"
graphql "^16.11.0"
type-fest "^4.41.0"
@@ -47,20 +57,20 @@
resolved "https://registry.yarnpkg.com/@aave/math-utils/-/math-utils-1.36.1.tgz#3e501962de3700250c213c981ea47b36a8e37a54"
integrity sha512-rR1sbDX1IFb1B1TLdi8hZANvtviPeU8hfpLuHC9cwlXluujCdHttnNVODwco1J5d2k6KxnNnc0DZJj2yV7nLTQ==
-"@aave/react@0.6.1":
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/@aave/react/-/react-0.6.1.tgz#4c5079ef87e74833376ef81c119ba3ba4b601e3f"
- integrity sha512-SBi1Ix3y8sIHeIbw3JF3XGBXK0KSvia1QbGSyuobNj0/028rWJ+FAqFm5XcBfNpVImf1BWZylsuryyyLaU1zvQ==
+"@aave/react@^0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@aave/react/-/react-0.7.0.tgz#d25ec57477214bdbd81a14c4e1126c1655922fb7"
+ integrity sha512-AsieUfwfJ41+rLDmc0SzkJHeri1Xrria45J+g0NPfj/iLrTU90a4XcmpcWW/IldojLy0iqsxb9f2DCtOVBMe/g==
dependencies:
- "@aave/client" "0.6.1"
- "@aave/graphql" "0.6.1"
- "@aave/types" "0.1.1"
+ "@aave/client" "0.7.0"
+ "@aave/graphql" "0.7.0"
+ "@aave/types" "0.2.0"
urql "^4.2.2"
-"@aave/types@0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@aave/types/-/types-0.1.1.tgz#cf0ad6c17e586cabda2f4e62a37ff950b709c4dc"
- integrity sha512-nqHsXg2adrur1C3Xc8rUMR/y1iYOkdm2XIw4QExfeTgrxr6s9M3DZWJiSJ2AqzgiYwBHLdkwrzYX3klxHg9jnA==
+"@aave/types@0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@aave/types/-/types-0.2.0.tgz#01129b12f44f127fc0f96a828319bc486a30f34b"
+ integrity sha512-T2iYj1bA5xYhtewptcmcwypsvRIkNW31oJQZD2MpZLzclUTY28v9i/sVZXcrMIgqaxQfdjzNGAFEwhbSS8pMtw==
dependencies:
neverthrow "^8.2.0"
type-fest "^4.41.0"