Created
June 20, 2024 21:16
-
-
Save rubpy/f64977208cfd1312097e350294765818 to your computer and use it in GitHub Desktop.
Fetching basic token (mint) info (through getAccountInfo), e.g.: total supply, mintAuthority, freezeAuthority...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import * as web3 from "@solana/web3.js"; | |
import { TOKEN_PROGRAM_ID, unpackMint, Mint } from "@solana/spl-token"; | |
////////////////////////////////////////////////// | |
async function getTokenInfo(conn: web3.Connection, tokenMint: web3.PublicKey): Promise<Mint | null> { | |
const info = await conn.getAccountInfo(tokenMint); | |
if (!info) return null; | |
try { | |
let mint: Mint | null = unpackMint(tokenMint, info, TOKEN_PROGRAM_ID); | |
return typeof mint === "object" ? mint : null; | |
} catch (e) {} | |
return null; | |
} | |
////////////////////////////////////////////////// | |
(async (rpcUrl: string) => { | |
const conn = new web3.Connection(rpcUrl, "confirmed"); | |
const tokenMint = new web3.PublicKey("EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm"); | |
const tokenInfo = await getTokenInfo(conn, tokenMint); | |
if (!tokenInfo) return; | |
////////////////////////////////////////////////// | |
console.log(`Token info (${tokenMint.toBase58()}):`); | |
console.dir(tokenInfo); | |
// | |
// --- OUTPUT --- | |
// | |
// Token info (EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm): | |
// { | |
// address: PublicKey [PublicKey(EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm)] { | |
// _bn: BN { negative: 0, words: [Array], length: 10, red: null } | |
// }, | |
// mintAuthority: null, | |
// supply: 998905893700562n, | |
// decimals: 6, | |
// isInitialized: true, | |
// freezeAuthority: null, | |
// tlvData: Buffer(0) [Uint8Array] [] | |
// } | |
// | |
// -------------- | |
// | |
})(process.env.SOL_RPC_URL || "https://mainnet.helius-rpc.com/?api-key=00000000-0000-0000-0000-000000000000"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment