Skip to content

Commit cd376a0

Browse files
committed
display defi balances by default
1 parent eea585d commit cd376a0

File tree

4 files changed

+51
-23
lines changed

4 files changed

+51
-23
lines changed

widget/src/components/RouteIndication.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const TokenBadge = ({
2121
address: Address;
2222
chainId: number;
2323
}) => {
24-
const token = useTokenFromList(address);
24+
const [token] = useTokenFromList(address);
2525
const {
2626
tokens: [ensoToken],
2727
} = useEnsoToken({

widget/src/components/TokenSelector.tsx

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,23 @@ const TokenSelector = ({
119119
setSelectionChainId(chainId);
120120
}, [chainId]);
121121

122+
const balanceDefiAddresses = useMemo(() => {
123+
return balances
124+
?.filter(
125+
(balance) =>
126+
!currentChainTokenList?.find(
127+
(token) => token.address === balance.token
128+
) && +balance.price > 0
129+
)
130+
.map((b) => b.token);
131+
}, [currentChainTokenList, balances]);
132+
133+
const { tokens: balanceDefiTokens } = useEnsoToken({
134+
address: balanceDefiAddresses,
135+
priorityChainId: selectionChainId,
136+
enabled: balanceDefiAddresses?.length > 0,
137+
});
138+
122139
const currentTokenList = selectedProject
123140
? protocolTokens
124141
: currentChainTokenList;
@@ -171,24 +188,29 @@ const TokenSelector = ({
171188
tokens.unshift(valueToken);
172189
}
173190

174-
const balancesWithTotals = tokens?.map((token) => {
175-
let balanceValue = balances?.find?.((b) => b.token === token.address);
176-
177-
// cut scientific notation
178-
const balance = Number(balanceValue?.amount).toLocaleString("fullwide", {
179-
useGrouping: false,
180-
});
181-
182-
return balanceValue
183-
? {
184-
...token,
185-
balance,
186-
costUsd:
187-
+normalizeValue(balance, balanceValue?.decimals) *
188-
+balanceValue?.price,
191+
const balancesWithTotals = [...balanceDefiTokens, ...tokens]?.map(
192+
(token) => {
193+
let balanceValue = balances?.find?.((b) => b.token === token.address);
194+
195+
// cut scientific notation
196+
const balance = Number(balanceValue?.amount).toLocaleString(
197+
"fullwide",
198+
{
199+
useGrouping: false,
189200
}
190-
: token;
191-
});
201+
);
202+
203+
return balanceValue
204+
? {
205+
...token,
206+
balance,
207+
costUsd:
208+
+normalizeValue(balance, balanceValue?.decimals) *
209+
+balanceValue?.price,
210+
}
211+
: token;
212+
}
213+
);
192214

193215
//sort by costUsd
194216
balancesWithTotals.sort((a: TokenWithBalance, b: TokenWithBalance) => {
@@ -198,6 +220,7 @@ const TokenSelector = ({
198220
return balancesWithTotals;
199221
}, [
200222
balances,
223+
balanceDefiTokens,
201224
currentTokenList,
202225
searchedToken,
203226
valueToken,

widget/src/util/common.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,12 +238,15 @@ export const useOneInchTokenList = () => {
238238
};
239239

240240
export const useTokenFromList = (
241-
tokenAddress: Address,
241+
tokenAddress: Address | Address[],
242242
priorityChainId?: SupportedChainId
243243
) => {
244244
const { data } = useCurrentChainList(priorityChainId);
245+
const arrayData = Array.isArray(tokenAddress) ? tokenAddress : [tokenAddress];
245246

246-
return data?.find?.((token) => token.address == tokenAddress);
247+
return arrayData.map((address) =>
248+
data?.find((token) => token.address == address)
249+
);
247250
};
248251

249252
export const useOutChainId = () => {

widget/src/util/enso.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ const useEnsoTokenDetails = ({
424424
protocolSlug,
425425
enabled = true,
426426
}: {
427-
address: Address;
427+
address: Address | Address[];
428428
priorityChainId?: SupportedChainId;
429429
project?: string;
430430
protocolSlug?: string;
@@ -454,7 +454,7 @@ export const useEnsoToken = ({
454454
protocolSlug,
455455
enabled,
456456
}: {
457-
address?: Address;
457+
address?: Address | Address[];
458458
priorityChainId?: SupportedChainId;
459459
protocolSlug?: string;
460460
project?: string;
@@ -477,7 +477,9 @@ export const useEnsoToken = ({
477477
return data.data.map((token) => ({
478478
...token,
479479
address: token?.address.toLowerCase() as Address,
480-
logoURI: tokenFromList?.logoURI ?? token?.logosUri[0],
480+
logoURI:
481+
tokenFromList?.find((t) => t?.address == token?.address)?.logoURI ??
482+
token?.logosUri[0],
481483
underlyingTokens: token?.underlyingTokens?.map((token) => ({
482484
...token,
483485
address: token?.address.toLowerCase() as Address,

0 commit comments

Comments
 (0)