Skip to content

Commit

Permalink
feat: silence token 2022 (#119)
Browse files Browse the repository at this point in the history
  • Loading branch information
LukasDeco authored May 22, 2024
1 parent 6e018fd commit 887162a
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions lib/tokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ import { PublicKey } from "@solana/web3.js";
import {
JsonMetadata,
MPL_TOKEN_METADATA_PROGRAM_ID,
deserializeMetadata,
deserializeMetadata
} from "@metaplex-foundation/mpl-token-metadata";
import { RpcAccount } from "@metaplex-foundation/umi";
import { Provider } from "@coral-xyz/anchor";
import {
Mint,
TOKEN_2022_PROGRAM_ID,
getMint,
getTokenMetadata,
getTokenMetadata
} from "@solana/spl-token";
import { TokenMetadataSource, TokenProps } from "@/types";

Expand Down Expand Up @@ -42,7 +42,7 @@ export async function enrichTokenMetadata(
const tokenPropsFromMetaplex = await getMetaplexMetadataForToken(
tokenAddress,
rpcProvider,
mint,
mint
);
if (tokenPropsFromMetaplex) {
return { ...tokenPropsFromMetaplex, source: "metaplex" };
Expand All @@ -66,7 +66,7 @@ export async function enrichTokenMetadata(
isFallback: true,
name: tokenAddress.toString().slice(0, 5).toUpperCase(),
url: null,
source: "fallback",
source: "fallback"
};
} catch (e) {
console.error(
Expand All @@ -80,7 +80,7 @@ export async function enrichTokenMetadata(
isFallback: true,
url: null,
name: tokenAddress.toString().slice(0, 5).toUpperCase(),
source: "fallback",
source: "fallback"
};
}
}
Expand Down Expand Up @@ -122,7 +122,7 @@ async function getTokenFromJupStrictList(
name: matchingJupToken?.name ?? null,
publicKey: matchingJupToken?.address ?? null,
symbol: matchingJupToken?.symbol ?? "",
url: matchingJupToken?.logoURI ?? null,
url: matchingJupToken?.logoURI ?? null
}
: null;
} catch (error) {
Expand All @@ -134,15 +134,15 @@ async function getTokenFromJupStrictList(
async function getMetaplexMetadataForToken(
tokenAddress: PublicKey,
rpcProvider: Provider,
mint: Mint
mint: Mint
): Promise<TokenProps | null> {
try {
const mplTokenProgramID = new PublicKey(MPL_TOKEN_METADATA_PROGRAM_ID);
const tokenMetaDataAddress = PublicKey.findProgramAddressSync(
[
Buffer.from("metadata", "utf8"),
mplTokenProgramID.toBuffer(),
tokenAddress.toBuffer(),
tokenAddress.toBuffer()
],
mplTokenProgramID
)[0];
Expand All @@ -163,7 +163,7 @@ async function getMetaplexMetadataForToken(
publicKey: tokenAddress.toString(),
url: jsonMetadata.image ?? null,
decimals: mint.decimals ?? 6,
name: jsonMetadata.name ?? null,
name: jsonMetadata.name ?? null
}
: null;
}
Expand All @@ -176,7 +176,8 @@ async function getMetaplexMetadataForToken(

async function fetchJupTokenListFromGithub(): Promise<TokenProps[]> {
try {
const url = "https://pub-bd38b8db5046423081fe3923f7d53200.r2.dev/validated-tokens.json";
const url =
"https://pub-bd38b8db5046423081fe3923f7d53200.r2.dev/validated-tokens.json";
const response = await fetch(url);

const data = await response.json();
Expand All @@ -187,8 +188,8 @@ async function fetchJupTokenListFromGithub(): Promise<TokenProps[]> {
symbol: token[1],
publicKey: token[2],
decimals: parseInt(token[3]),
url: token[4],
}
url: token[4]
};
});
return tokens;
} catch (error) {
Expand Down Expand Up @@ -218,14 +219,17 @@ async function getMetadataFromToken2022(
publicKey: tokenAddress.toString(),
url: token2022UriJson.image ?? null,
decimals: mint.decimals,
name: token2022UriJson.name ?? null,
name: token2022UriJson.name ?? null
};
}
} catch (e) {
console.log(
"error fetching from token 2022 for address:",
tokenAddress.toString()
);
// this has created very noisy errors anytime the token metadata isn't in token 2022.
// maybe the SDK needs like a debug flag or something so we can dynamically enable/disable
// verbose logging
// console.error(
// "error fetching from token 2022 for address:",
// tokenAddress.toString()
// );
} finally {
return null;
}
Expand Down

0 comments on commit 887162a

Please sign in to comment.