Skip to content

Commit

Permalink
fix(react): add isNative flag to tokens
Browse files Browse the repository at this point in the history
  • Loading branch information
jayeshbhole-rp committed Dec 18, 2024
1 parent c1064ab commit e0803d1
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
24 changes: 15 additions & 9 deletions packages/react/src/actions/getToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,17 @@ export const getTokenMetadata = async ({ token, chain, config }: GetTokenMetadat
decimals: chain.nativeCurrency.decimals,
address: ETH_ADDRESS,
chainId: chain.id.toString() as ChainId,
isNative: true,
};
}

const { name, symbol, decimals } = await getEVMTokenMetadata(token, Number(chain.id), config.wagmiConfig);
return { name, symbol, decimals, address: token, chainId: chain.id.toString() as ChainId };
return { name, symbol, decimals, address: token, chainId: chain.id.toString() as ChainId, isNative: false };
}

if (chain.type === 'tron') {
if (areTokensEqual(token, ETH_ADDRESS)) {
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id };
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id, isNative: true };
}
let contractAddress: string = token;
// = config.tronWeb.address.fromHex(token);
Expand All @@ -63,12 +64,12 @@ export const getTokenMetadata = async ({ token, chain, config }: GetTokenMetadat

[name, symbol, decimals] = await Promise.all([name, symbol, decimals]);

return { name, symbol, decimals: Number(decimals), address: token, chainId: chain.id };
return { name, symbol, decimals: Number(decimals), address: token, chainId: chain.id, isNative: false };
}

if (chain.type === 'solana') {
if (areTokensEqual(token, SOL_ADDRESS)) {
return { ...chain.nativeCurrency, address: SOL_ADDRESS, chainId: chain.id };
return { ...chain.nativeCurrency, address: SOL_ADDRESS, chainId: chain.id, isNative: true };
}

const pbKey = new PublicKey(token);
Expand All @@ -83,6 +84,7 @@ export const getTokenMetadata = async ({ token, chain, config }: GetTokenMetadat
decimals: parsed.info.decimals,
address: token,
chainId: chain.id,
isNative: false,
};
} else {
throw new Error('Token metadata not found');
Expand All @@ -91,36 +93,38 @@ export const getTokenMetadata = async ({ token, chain, config }: GetTokenMetadat

if (chain.type === 'ton') {
if (areTokensEqual(token, ETH_ADDRESS)) {
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id };
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id, isNative: true };
}
const res = await getTonTokenMetadata({ token, chainId: chain.id });
return {
...res,
chainId: chain.id,
isNative: false,
};
}

if (chain.type === 'cosmos') {
if (areTokensEqual(token, ETH_ADDRESS)) {
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id };
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id, isNative: true };
}
const res = await getCosmosTokenMetadata({ token, chain, getCosmosClient: config.getCosmosClient });

return {
...res,
chainId: chain.id,
isNative: false,
};
}

if (chain.type === 'bitcoin') {
if (areTokensEqual(token, ETH_ADDRESS)) {
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id };
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id, isNative: true };
}
}

if (chain.type === 'near') {
if (areTokensEqual(token, ETH_ADDRESS)) {
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id };
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id, isNative: true };
}
const res = await viewMethodOnNear(chain as OtherChainData<'near'>, token, 'ft_metadata');

Expand All @@ -130,12 +134,13 @@ export const getTokenMetadata = async ({ token, chain, config }: GetTokenMetadat
decimals: res.decimals,
address: token,
chainId: chain.id,
isNative: false,
};
}

if (chain.type === 'sui') {
if (areTokensEqual(token, ETH_ADDRESS)) {
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id };
return { ...chain.nativeCurrency, address: ETH_ADDRESS, chainId: chain.id, isNative: true };
}

let res;
Expand All @@ -156,6 +161,7 @@ export const getTokenMetadata = async ({ token, chain, config }: GetTokenMetadat
decimals: res.decimals,
address: token,
chainId: chain.id,
isNative: false,
};
}

Expand Down
1 change: 1 addition & 0 deletions packages/react/src/hooks/useToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export type TokenMetadata = {
symbol: string;
decimals: number;
chainId: ChainId;
isNative: boolean;
};

export const useToken = ({ chainId, token, ...queryOptions }: UseTokenParams) => {
Expand Down

0 comments on commit e0803d1

Please sign in to comment.